web-dev-qa-db-ja.com

次のページが古い記事ではなく同じコンテンツを読むのはなぜですか。

何らかの理由で、ホームページの「前の投稿」と「次の投稿」は前の投稿をロードせず、メインページにあったのと同じ投稿をロードします。

何故ですか?どこからデバッグを始めればいいのかさえわかりません...

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">&larr;</span> Предишни статии', 'twentyten' ) ); ?></div>
                <div class="nav-next"><?php previous_posts_link( __( 'Следващи статии <span class="meta-nav">&rarr;</span>', 'twentyten' ) ); ?></div>
            </div><!-- #nav-below -->
<?php endif; ?>

これらのコードにない場合、問題は他にどこにありますか?どうやってデバッグできますか?

1
mgPePe

クエリ文字列に'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 )

0
Sisir

あなたのホームページがそれ自身のquery_posts呼び出しを使っていて、そのquery_posts呼び出しが特定のカテゴリーからのすべての投稿を取り戻しているからです。これが唯一の制限であるため、常に同じ投稿を取得して表示します。

1
Jack