Pagination stops at page 6

时间:2012-09-12 作者:Carpy

下面的循环工作得很好,除了分页总是在第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 个回复
最合适的回答,由SO网友:Milo 整理而成

试图从不同的查询中使用分页总是充满了潜在的灾难。next_posts_link 接受第二个参数,$max_pages, 如果您正确传递,这可能会解决您的问题:

next_posts_link( __( \'Next\'), $idxloop->max_num_pages );
然而,这个问题的真正答案是在模板之前调整查询。通过新的WP_Query 或通过使用query_posts 很简单,就是做错了,尽管网上有数百万个这样做的例子,但你会看到。

首选的方法是使用pre_get_posts 操作以及conditional check 要将其应用于要调整的特定查询类型,请执行以下操作:

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 );

SO网友:Ciprian

在“设置->阅读”屏幕中,你指定了每页多少篇文章?

此外,请尝试放置wp_reset_query(); 也在脚本的顶部。

UPDATE:

尝试此循环:

<?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; ?>

结束

相关推荐

Save post meta foreach loop

我的脑子垮了。如何保存此帖子数据?在表单中构建一些键值对。 for ($i = 1; $i <= 3; $i++) { $saved = $meta[$i]; //print_r($saved); //echo $saved[\'key\']; echo \'<p>\'; echo \'<label for=\"meta_k_\'.$i.\'\">Ke