web-dev-qa-db-ja.com

ページ付けは6ページで止まる

以下のループは、ページ付けが常に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(); ?>
2
Carpy

別のクエリからのページネーションを使用しようとすると、常に潜在的な災害に悩まされます。 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
Milo

[設定] - > [閲覧]画面で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; ?>
0
Ciprian