每个类别和排除侧栏的页面集合中的帖子数量

时间:2014-12-03 作者:Phantasmix

我在侧边栏中有一个小部件,显示最近的帖子。下面的代码用于设置每个类别中每页的帖子数量,但它也会影响侧栏。有没有办法排除侧边栏?

/** Different number of posts per page depending on the category **/
function hwl_home_pagesize( $query ) 
{
    if ( is_category( \'video\' ) )
{
    // If you want "showposts"
    $query->query_vars[\'showposts\'] = 10;
    return;
}
}
add_action( \'pre_get_posts\', \'hwl_home_pagesize\', 1 );  

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

检查is_main_query 在查询对象上。

if ( is_category( \'video\' ) && $query->is_main_query() )

SO网友:Pieter Goosen

你应该always 执行以下两项检查

检查当前查询是否为主查询

检查查询是否为前端查询

pre_get_posts 更改all 的实例WP_query, 前端和后端,因此您需要再次确保您正在进行上述检查

而且is_category() 应为的对象$query

您的条件应如下所示

if( !is_admin() && $query->is_main_query() && $query->is_category() ) 

结束

相关推荐

Get a list of categories ids

我正在使用基于自定义帖子类型的过滤器制作一个公文包。该过滤器必须只显示公文包中显示的帖子的类别,因为用户可以在短代码中通过id指定它们-[公文包id=“1,2,3”],而我无法获得该类别id的列表。下面是一个简单的例子,说明我正在尝试做什么:来自快捷码的自定义帖子ID列表:$ids 相同ID的数组:$id_array = explode(\',\', $ids) 必须返回类别ID列表的感兴趣的变量:$cat_ids = ??? 接下来,我们只获取具有所需id的类别:$ca