以下のループは、ページ付けが常に6ページで止まるという事実を除けば、うまくいきます。どんな引数を指定しても、6ページを超えて表示されることは決してありません。
誰もがその理由を知っていますか?
<?php
$paged = (get_query_var('paged')) ? get_query_var('paged') : 1;
$idxargs = array(
'posts_per_page' => '1',
'paged' => $paged,
);
$idxloop = new WP_Query( $idxargs );
?>
<?php if ($idxloop->have_posts()) : while ( $idxloop->have_posts() ) : $idxloop->the_post(); ?>
<?php the_title(); ?>
<?php endwhile; ?>
<?php next_posts_link( __( 'Next') ); ?>
<?php previous_posts_link( __( 'Prev' ) ); ?>
<?php endif; ?>
<?php wp_reset_query(); ?>
別のクエリからのページネーションを使用しようとすると、常に潜在的な災害に悩まされます。 next_posts_link
は2番目の引数$max_pages
を受け入れます。これにより、適切に渡すと問題が解決する場合があります。
next_posts_link( __( 'Next'), $idxloop->max_num_pages );
ただし、この質問に対するreal答えは、クエリを調整することですbeforeテンプレート。新しいWP_Query
を使用して、またはquery_posts
を使用してデフォルトのクエリを調整するのは、非常に単純です間違っている。
これに適した方法は、 pre_get_posts
アクションと 条件付きチェック を使用して、調整する特定の種類のクエリに適用することです。
function wpa64918_homepage_posts_per_page( $query ) {
if ( $query->is_home() && $query->is_main_query() )
$query->set( 'posts_per_page', 1 );
}
add_action( 'pre_get_posts', 'wpa64918_homepage_posts_per_page', 1 );
[設定] - > [閲覧]画面で1ページあたりの投稿数を指定しましたか。
また、スクリプトの先頭にwp_reset_query();
を配置してみてください。
更新:
このループを試してください。
<?php query_posts('posts_per_page=1&paged='.$paged.''); ?>
<?php if(have_posts()) : while(have_posts()) : the_post(); ?>
<li>
<a href="<?php the_permalink(); ?>" title="<?php the_title(); ?>"><?php the_title(); ?></a>
</li>
<?php endwhile; ?>
<?php next_posts_link( __( 'Next') ); ?>
<?php previous_posts_link( __( 'Prev' ) ); ?>
<?php endif; ?>