繁体   English   中英

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

[英]Wordpress - How to set different posts per page number for two different categories?

在我的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个。

谁能告诉我该如何处理第二页和下一页?

您不应该运行自定义查询来代替主查询。 它们总是导致更多问题,分页始终是您遇到的问题之一。 另外,运行自定义查询来代替主查询会减慢您的页面速度,因此,这始终是一种松散的情况。

如果您需要在主查询中进行更改,请使用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 );
    }
});

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM