Wordpress - 如何为两个不同类别的每页编号设置不同的帖子?

时间:2016-04-06 08:50:56

标签: php wordpress

在我的Wordpress网站上,我有两个类别:新闻分会。如何将新闻类别的每页帖子数量设置为10,分会类别每页4个帖子?

我在设置>中设置了每页的帖子数量阅读10和新闻按我的意愿工作但不是分会

我在俱乐部类别中有自定义循环,我将posts_per_page设置为4。 在category-club.php我有

$args=array(
    'category_name'=>'club',
    'post_type' => 'post',
    'post_status' => 'publish',
    'posts_per_page' => 4,
    'orderby' => 'date',
    'order' => 'desc',
    'paged' => ((get_query_var('paged')) ? get_query_var('paged') : 1)
  );

但是当我切换到此类别中的帖子的第2页时会出现问题。我收到404错误。我认为这是因为我在此类别中的帖子少于10个。

任何人都可以告诉我如何才能让第二页和下一页有效?

1 个答案:

答案 0 :(得分:1)

您不应该运行自定义查询来代替主查询。它们总是导致更多的问题,而且你经历过的分页总是其中之一。此外,代替主查询运行自定义查询会降低页面速度,因此它总是松散的情况。

如果您需要更改主查询中的内容,请使用pre_get_posts来实现您的需求。您可以尝试以下操作:(只需记住返回类别页面中的默认循环

add_action( 'pre_get_posts', function ( $q )
{
    if (    !is_admin() // Only target the frontend
         && $q->is_main_query() // Only target the main query
         && is_category() // Only target category pages
    ) {
        if ( is_category( 'news' ) )
            $q->set( 'posts_per_page', 10 );

        if ( is_category( 'club' ) )   
            $q->set( 'posts_per_page', 4 );
    }
});