存档页面...限制每页的帖子

时间:2015-03-17 作者:agon024

因此,我所做的是创建一个自定义的post类型“testicials”,并将“has archive”选项设置为“true”,并创建一个名为“archive esticials.PHP”的PHP模板文件。

我不想做的是,将显示的帖子数量限制为5篇,并有一个返回选项,可以返回并转发到下一篇5篇。听起来很容易,但由于某种原因,我无法让它工作。

以下是我的循环,显示了所有17条推荐帖子:

<?php $loop = new WP_Query( array( \'pagename\' => \'testimonials\', \'posts_per_page\' => -1 ) ); ?>
<?php while ( $loop->have_posts() ) : $loop->the_post(); ?>
  <div>
    <h2><?php the_title(); ?></h2>
    <?php the_content(); ?>
   </div>
 <?php endwhile; ?>
它显示所有内容而不是仅显示10个内容的唯一方法是使用“posts\\u per\\u page”=>-1。即使没有“posts\\u per\\u page”,它也只会显示17篇文章中的10篇。

现在我尝试了:

<?php $loop = new WP_Query( array( \'post_type\' => \'testimonials\', \'posts_per_page\' => 5 ) ); ?>
<?php previous_posts_link(); ?> &bull; <?php next_posts_link(); ?>
<?php while ( $loop->have_posts() ) : $loop->the_post(); ?>
  <div>
    <h2><?php the_title(); ?></h2>
     <?php the_content(); ?>
  </div>
<?php endwhile; ?>
我可以让它只显示5个,但我没有分页到下一个5个。我刚刚打开“推荐信/第/页/第2/”并显示了与前一页相同的五个。

我做错了什么。非常感谢您的帮助。

谢谢

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

不要仅仅为了改变每页的帖子而创建新的查询和循环。添加连接到的函数pre_get_posts 并在运行查询之前更改其中所需的任何参数。这将符合你的主题functions.php 文件或插件。

function wpd_testimonials_query( $query ){
    if( ! is_admin()
        && $query->is_post_type_archive( \'testimonials\' )
        && $query->is_main_query() ){
            $query->set( \'posts_per_page\', 5 );
    }
}
add_action( \'pre_get_posts\', \'wpd_testimonials_query\' );
然后在模板中运行正常循环,分页按预期工作。

结束

相关推荐

Iterate through ID's in loop

我已经基于category创建了一个自定义循环,现在我想运行一个函数,将当前帖子的特定ID作为参数进行迭代。我有。。$secondary_loop = new WP_Query(array( \'category_name\' => get_the_title(), \'posts_per_page\' => 5 )); while ( $secondary_loop->have_posts() ) : $secondary_loop->the_post();&#x