Add pagination to blog

时间:2014-07-11 作者:frshjb373

我想限制每页3个博客条目片段,并包括其他页面的分页。这是我到目前为止的情况,但分页不起作用。

            <div id="page-content">

<?php
$args = array( \'posts_per_page\' =>3, \'order\'=> \'ASC\', \'orderby\' => \'title\' );
$postslist = get_posts( $args );
foreach ( $postslist as $post ) :
  setup_postdata( $post ); ?> 
    <div>

        <a href="<?php the_permalink(); ?>"><?php the_title(); ?> </a><br />
        <small><?php the_time(\'F jS, Y\') ?> by <?php the_author(); ?></small>
        <?php the_excerpt(); ?><br />
    </div>
<?php endforeach; 
wp_reset_postdata();?>
      </div>

<?php posts_nav_link( $sep, $prelabel, $nextlabel ); ?> 
<?php posts_nav_link(); ?>
<div class="navigation">
<div class="alignleft"><?php posts_nav_link(\'\',\'\',\'&laquo; Previous Entries\') ?></div>
<div class="alignright"><?php posts_nav_link(\'\',\'Next Entries &raquo;\',\'\') ?></div>
</div>
        <!--#page-content-->

1 个回复
最合适的回答,由SO网友:Pieter Goosen 整理而成

甜的,短的,不要用get_posts 如果需要分页查询。get_posts 如果您要使用不需要分页的自定义查询,那么它将非常有效,但当您需要引入分页时,它实际上会变得非常复杂。

我认为最简单和最合适的方法是WP_Query 要构造自定义查询,即,if you can\'t use pre_get_posts to alter the main query 从主查询中获取所需的输出。

此外,这两行是不必要的,您必须删除这些

<?php posts_nav_link( $sep, $prelabel, $nextlabel ); ?> 
<?php posts_nav_link(); ?>
我确实认为next_posts_link()previous_posts_link() 最好与自定义查询一起使用,即WP_Query. 但是,您必须记住设置$max_pages 参数,否则分页将中断

通过一些小的调整,您的查询应该如下所示

<div id="page-content">

    <?php
    $paged = (get_query_var(\'paged\')) ? get_query_var(\'paged\') : 1;
    $args = array( \'posts_per_page\' =>3, \'order\'=> \'ASC\', \'orderby\' => \'title\', \'paged\' => $paged );
    $postslist = new WP_Query( $args );

    if ( $postslist->have_posts() ) :
        while ( $postslist->have_posts() ) : $postslist->the_post(); ?>
            <div>
                <a href="<?php the_permalink(); ?>"><?php the_title(); ?> </a><br />
                <small><?php the_time(\'F jS, Y\') ?> by <?php the_author(); ?></small>
                <?php the_excerpt(); ?><br />
            </div>
        <?php endwhile; ?>
        <div class="navigation">
            <div class="alignleft"><?php next_posts_link( \'&laquo; Previous Entries\', $postslist->max_num_pages ); ?></div>
            <div class="alignright"><?php previous_posts_link( \'Next Entries &raquo;\' ); ?></div>
        </div>
        <?php wp_reset_postdata();
    endif;
    ?>

</div>

结束

相关推荐

Custom pagination

我使用模板部分来显示投资组合项目。它不是页面模板,只是公文包。php文件,我将其包含在get_template_part(\'portfolio\'); 至主页。现在一切都很好。但我想对这个部分使用分页。这是我的代码块;<?php global $wp_query; $paged = get_query_var(\'paged\') ? get_query_var(\'paged\') : 1; $port_args = array( \'post_t