我正在尝试修改特定帖子类型的查询,无论当前显示的是哪个页面(单个页面或存档页面)。我pre_get_posts在这个测试中使用过滤器:
if ( is_singular( 'evenement' ) || is_post_type_archive( 'evenement' ) ) {
// do something
}
Run Code Online (Sandbox Code Playgroud)
但当is_singular我在一个页面上时,条件标签似乎永远不会成立evenement。
知道我可能错过了什么吗?谢谢你的帮助。
我遇到了同样的问题,并认为您不能使用is_singularinpre_get_posts因为此时尚未设置查询的对象。这是有道理的:查询尚未处理,如果正在显示帖子则is_singular返回true- 我们目前不知道查询是否返回任何结果,截至_get_posts之前)。
您可以使用post_type查询参数,如下所示:
if($query->get('post_type') === 'evenement') {
// ... do stuff
}
Run Code Online (Sandbox Code Playgroud)