Исключить сообщения из результатов поиска на основе мета-запроса с «НЕ СУЩЕСТВУЕТ» больше не работает - PullRequest
0 голосов
/ 21 октября 2019

Я зарегистрировал мета-поле внутри постов и страниц с флажком, чтобы запретить показ этого поста / страницы в результатах поиска. Как только пользователь установит этот флажок и нажмет кнопку сохранить / обновить сообщение, мета-ключ с именем _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');

Раньше это работало, но я не уверен, что произошло с этим запросом, поскольку теперь он не показывает результатов на странице поиска!

Используемая мной версия WordPress - 5.2.3. Кажется, об этой проблеме много раз сообщалось как об ошибках, здесь и здесь .

Если я попытался напечатать запрос, он выглядит так:

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 Ответ

0 голосов
/ 13 ноября 2019

Это был конфликт плагинов с Cornerstone новой функцией поиска.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...