在Wordpress网站上,我有两类:新闻和俱乐部。如何将新闻类别的每页帖子数设置为10,将club分类的每页帖子数量设置为4?
我已在"设置">"阅读"中将每页的帖子数设置为10,新闻按我的意愿运行,但不是俱乐部
我在俱乐部类别中有一个自定义循环,我将posts_per_page设置为4。在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 );
}
});