私は本当に迷惑な問題を抱えています。
コメントがない場合、コメントは表示されません。ピングバックがない場合は、表示されません。
しかし、pingbackがあり、多くのコメントがあるので、2、3ページなどのコメントがある場合は、次のようになります。pingbackは page 1 に正しく表示されます。 。 2ページ にアクセスすると、PingbackのHTMLマークアップが表示されますが、実際のpingは表示されません。
理由がわかりません。 1ページ目と同じpingbackが表示されるか、HTMLマークアップがまったく表示されない(そしてpingが表示されない)ことが必要です。
あなたはここで問題を見ることができます。 1ページではすべてうまく機能しますが、2ページではpingback用のHTMLマークアップしか取得できません。
これがコードです:
<?php if ( have_comments() ) : ?>
<?php if ( ! empty($comments_by_type['comment']) ) : ?>
<h2 class="h2comments"><img src="http://zoomingjapan.com/wp-content/themes/alltuts-child/images/comments_big.png" /><?php comments_number('No Comments', '1 Comment', '% Comments' );?> <a href="#respond" class="addComment"><img src="http://zoomingjapan.com/wp-content/themes/alltuts/images/add_your_coment_ver2.png" border="0"></a></h2>
<ul class="commentlist">
<?php wp_list_comments('type=comment&callback=mytheme_comment'); ?>
<div class="navigation">
<?php paginate_comments_links(); ?>
</div>
</ul>
<?php endif; ?>
<?php if ( ! empty($comments_by_type['pings']) ) : ?>
<h2 id="pings">Trackbacks/Pingbacks</h2>
<ul class="pinglist">
<?php wp_list_comments('type=pings&callback=list_pings'); ?>
</ul>
<?php endif; ?>
<?php else : // this is displayed if there are no comments so far ?>
<?php if ('open' == $post->comment_status) : ?>
<!-- If comments are open, but there are no comments. -->
<?php else : // comments are closed ?>
<!-- If comments are closed. -->
<p class="nocomments">Comments are closed.</p>
<?php endif; ?>
<?php endif; ?>
私がすでに試みたのはナビゲーションの位置を変えるか、さらには削除することでした。それは変わらなかった。
他のアイデア?
編集:10月21日
HTMLマークアップを削除してもうまくいかない場合は、代わりにHTMLマークアップ内にメッセージを表示することをお勧めします。「申し訳ありませんが、まだpingはありません」のようなものです。私はこれを試したが、何も表示されていない:
<?php if ( ! empty($comments_by_type['pings']) ) : ?>
<h2 id="pings">Trackbacks/Pingbacks</h2>
<ul class="pinglist">
<?php wp_list_comments('type=pings&callback=list_pings'); ?>
</ul>
<?php
else :
echo '<p class="no-pingbacks">sorry but there are no pingbacks yet</p>';
endif;
?>
誰かが助けてくれることを願っています。
コメントとは別にpingを一覧表示しているので、pingを除外するにはおそらくget_comments_number
をフィルタリングする必要があります。 これが私のやり方です :
<?php
function oenology_comment_count( $count ) {
// Only filter the comments number
// in the front-end display
if (
// WordPress conditional that returns true if
// the current page is in the WP-Admin back-end
! is_admin()
) {
global $id;
$comments_by_type = &separate_comments( get_comments( 'status=approve&post_id=' . $id ) );
return count( $comments_by_type['comment'] );
}
// Otherwise, when in the WP-Admin
// back end, don't filter comments
// number
else {
return $count;
}
}
// Hook custom comment number into 'get_comments_number'
add_filter('get_comments_number', 'oenology_comment_count', 0);
?>
これはまた、コメントのページ付けに関するコメント数にも影響を与えると確信しています。 (警告:あなたのpingリストはページ番号なしを出力します。)
私は同じ問題に直面していました。解決したようです。他の誰かがこの問題に直面している場合に備えて:
これを交換してください:
wp_list_comments('type=pings&callback=list_pings');
これで:
wp_list_comments('type=pings&callback=list_pings&page=1&per_page=1000');