问题描述
/ p>
我试图隐藏包含特定元数据的帖子,在这种情况下meta_name =smartPrivate。
Thanks in advanceRob
有谁知道我可以如何隐藏这些帖子出现在所有循环中,但不会影响菜单(谁知道还有什么...)
在此先感谢
Rob
function hide_some_posts( $query ) { if (!is_user_logged_in()) { $query->set( 'meta_query', array( array( 'key' => 'smartPrivate', 'value' => 'smartPrivate_loggedIn', 'compare' => '!=' ), array( 'key' => 'smartPrivate', 'value' => 'smartPrivate_loggedInMentors', 'compare' => '!=' ) )); } return $query;}add_filter( 'pre_get_posts', 'hide_some_posts' );
推荐答案
所以你的问题是,主要查询,如果我正确理解你的情况。这几乎是为什么存在。所以试试这个:
So your problem is that it affects other queries than the main query, if I understand your situation correctly. This is pretty much why is_main_query exists. So try this:
function hide_some_posts( $query ) {
if (!is_user_logged_in() && $query->is_main_query() ) {
$query->set( 'meta_query', array(
array(
'key' => 'smartPrivate',
'value' => 'smartPrivate_loggedIn',
'compare' => '!='
),
array(
'key' => 'smartPrivate',
'value' => 'smartPrivate_loggedInMentors',
'compare' => '!='
)
));
}
return $query;
}
add_filter( 'pre_get_posts', 'hide_some_posts' );
这篇关于Wordpress循环过滤元的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!