根据带有”NOT EXISTS”的meta_query从搜索结果中排除post不再起作用
我已经在帖子和页面中注册了带有复选框的元框, 以防止该帖子/页面显示在搜索结果中。一旦用户选中该复选框并点击”
保存/更新帖子”
, 一个名为_dont_show_in_search_results的元键(值POST_ID)将被保存到与该帖子关联的数据库中。
在pre_get_posts动作中, 我正在执行以下操作:
function exclude_posts_from_search( $query ){
if($query->
is_main_query() &
&
is_search() ){
$query->
set('meta_query', array(array("key"=>
"_dont_show_in_search_results", "compare"=>
"NOT EXISTS")));
}
}add_action('pre_get_posts', 'exclude_posts_from_search');
【根据带有” NOT EXISTS” 的meta_query从搜索结果中排除post不再起作用】它过去曾经可以使用, 但是由于该查询现在在搜索页面上不显示任何结果, 因此不确定该查询发生了什么!
我正在使用的WordPress版本是5.2.3。似乎此问题在这里和这里多次被报告为bug。
如果我尝试打印查询, 则显示如下:
object(WP_Query)[566]
public 'query' =>
array (size=1)
's' =>
string 'searchTerm' (length=10)
public 'query_vars' =>
array (size=53)
's' =>
string 'searchTerm' (length=10)
'error' =>
string '' (length=0)
'm' =>
string '' (length=0)
'p' =>
int 0
'post_parent' =>
string '' (length=0)
'subpost' =>
string '' (length=0)
'subpost_id' =>
string '' (length=0)
'attachment' =>
string '' (length=0)
'attachment_id' =>
int 0
'name' =>
string '' (length=0)
'static' =>
string '' (length=0)
'pagename' =>
string '' (length=0)
'page_id' =>
int 0
'second' =>
string '' (length=0)
'minute' =>
string '' (length=0)
'hour' =>
string '' (length=0)
'day' =>
int 0
'monthnum' =>
int 0
'year' =>
int 0
'w' =>
int 0
'category_name' =>
string '' (length=0)
'tag' =>
string '' (length=0)
'cat' =>
string '' (length=0)
'tag_id' =>
string '' (length=0)
'author' =>
string '' (length=0)
'author_name' =>
string '' (length=0)
'feed' =>
string '' (length=0)
'tb' =>
string '' (length=0)
'paged' =>
int 0
'meta_key' =>
string '' (length=0)
'meta_value' =>
string '' (length=0)
'preview' =>
string '' (length=0)
'sentence' =>
string '' (length=0)
'title' =>
string '' (length=0)
'fields' =>
string '' (length=0)
'menu_order' =>
string '' (length=0)
'embed' =>
string '' (length=0)
'category__in' =>
array (size=0)
empty
'category__not_in' =>
array (size=0)
empty
'category__and' =>
array (size=0)
empty
'post__in' =>
array (size=0)
empty
'post__not_in' =>
array (size=0)
empty
'post_name__in' =>
array (size=0)
empty
'tag__in' =>
array (size=0)
empty
'tag__not_in' =>
array (size=0)
empty
'tag__and' =>
array (size=0)
empty
'tag_slug__in' =>
array (size=0)
empty
'tag_slug__and' =>
array (size=0)
empty
'post_parent__in' =>
array (size=0)
empty
'post_parent__not_in' =>
array (size=0)
empty
'author__in' =>
array (size=0)
empty
'author__not_in' =>
array (size=0)
empty
'meta_query' =>
array (size=1)
0 =>
array (size=2)
'key' =>
string '_dont_show_in_search_results' (length=28)
'compare' =>
string 'NOT EXISTS' (length=10)
public 'tax_query' =>
object(WP_Tax_Query)[1650]
public 'queries' =>
array (size=0)
empty
public 'relation' =>
string 'AND' (length=3)
protected 'table_aliases' =>
array (size=0)
empty
public 'queried_terms' =>
array (size=0)
empty
public 'primary_table' =>
null
public 'primary_id_column' =>
null
public 'meta_query' =>
boolean false
public 'date_query' =>
boolean false
public 'post_count' =>
int 0
public 'current_post' =>
int -1
public 'in_the_loop' =>
boolean false
public 'comment_count' =>
int 0
public 'current_comment' =>
int -1
public 'found_posts' =>
int 0
public 'max_num_pages' =>
int 0
public 'max_num_comment_pages' =>
int 0
public 'is_single' =>
boolean false
public 'is_preview' =>
boolean false
public 'is_page' =>
boolean false
public 'is_archive' =>
boolean false
public 'is_date' =>
boolean false
public 'is_year' =>
boolean false
public 'is_month' =>
boolean false
public 'is_day' =>
boolean false
public 'is_time' =>
boolean false
public 'is_author' =>
boolean false
public 'is_category' =>
boolean false
public 'is_tag' =>
boolean false
public 'is_tax' =>
boolean false
public 'is_search' =>
boolean true
public 'is_feed' =>
boolean false
public 'is_comment_feed' =>
boolean false
public 'is_trackback' =>
boolean false
public 'is_home' =>
boolean false
public 'is_privacy_policy' =>
boolean false
public 'is_404' =>
boolean false
public 'is_embed' =>
boolean false
public 'is_paged' =>
boolean false
public 'is_admin' =>
boolean false
public 'is_attachment' =>
boolean false
public 'is_singular' =>
boolean false
public 'is_robots' =>
boolean false
public 'is_posts_page' =>
boolean false
public 'is_post_type_archive' =>
boolean false
private 'query_vars_hash' =>
string '0d61505a07baa4860f1831a27ad01416' (length=32)
private 'query_vars_changed' =>
boolean false
public 'thumbnails_cached' =>
boolean false
private 'stopwords' =>
null
private 'compat_fields' =>
array (size=2)
0 =>
string 'query_vars_hash' (length=15)
1 =>
string 'query_vars_changed' (length=18)
private 'compat_methods' =>
array (size=2)
0 =>
string 'init_query_flags' (length=16)
1 =>
string 'parse_tax_query' (length=15)
#1这是与Cornerstone新搜索功能发生的插件冲突。
推荐阅读
- 通过自定义查询排除精选文章不起作用
- 结合并显示博客文章结果和自定义分类法
- 子主题不读取模板部分文件
- 在网站上动态点击YouTube订阅按钮
- 检查用户是否具有Gravatar
- 更改auth_redirect()页面
- 我们可以在woocommerce的商店页面上添加媒体框吗()
- 我们可以在主题中复制ACF功能吗()
- 可以使用WC_Products_Query获得与所需产品名称匹配的产品吗()