何らかの理由で、ホームページの「前の投稿」と「次の投稿」は前の投稿をロードせず、メインページにあったのと同じ投稿をロードします。
何故ですか?どこからデバッグを始めればいいのかさえわかりません...
loop.php
ファイルに関連している可能性がある以下のコードスニペットがあります。
if ( is_home() ) {
query_posts($query_string . '&cat=-13,');
}
while ( have_posts() ) : the_post(); ?>
// This following line added to exclude posts that have custom variable ad=true:
<?php if ( get_post_meta($post->ID, 'ad', true) == '') { ?>
...ここに表示中の投稿があります...
<?php } // Ending the exlusion of 'ad' ?>
<?php endwhile; // End the loop. Whew. ?>
<?php if ( $wp_query->max_num_pages > 1 ) : ?>
<div id="nav-below" class="navigation">
<div class="nav-previous"><?php next_posts_link( __( '<span class="meta-nav">←</span> Предишни статии', 'twentyten' ) ); ?></div>
<div class="nav-next"><?php previous_posts_link( __( 'Следващи статии <span class="meta-nav">→</span>', 'twentyten' ) ); ?></div>
</div><!-- #nav-below -->
<?php endif; ?>
これらのコードにない場合、問題は他にどこにありますか?どうやってデバッグできますか?
クエリ文字列に'posts_per_page'
と'paged'
を使用していますか?追加しない場合
$paged = (get_query_var('paged')) ? get_query_var('paged') : 1;
$query .= 'posts_per_page=5&paged='.$paged
番号5は、次のページ(ページ付け)リンクを表示するまでの投稿数に置き換えられます。
次のページリンクのif文も削除してください
if ( $wp_query->max_num_pages > 1 )
あなたのホームページがそれ自身のquery_posts呼び出しを使っていて、そのquery_posts呼び出しが特定のカテゴリーからのすべての投稿を取り戻しているからです。これが唯一の制限であるため、常に同じ投稿を取得して表示します。