pre_get_posts variables

时间:2016-04-05 作者:lkl

跟进Adding arg to search results page, 我想在分类中显示未来的帖子,但不想在主页上显示。

此代码适用于:

add_action( \'pre_get_posts\', function ( $q ) {
if (    !is_admin()
     && !is_feed()
     && $q->is_main_query() 
) {
    $q->set( \'post_status\', [\'publish\', \'future\'] );
}
});
但在主页上显示未来的帖子。

我尝试添加&& !is_home() 但它不起作用——未来的帖子不再出现在任何地方。

1 个回复
SO网友:Tom J Nowell

内部逻辑is_home 函数依赖于主查询,但根据定义,该查询尚未发生,因为您仍处于pre_get_posts 滤器

相反,请考虑$q->is_home(). 这同样适用于is_feed() $q->is_feed()

相关推荐