2013-12-23 6 views
0

У меня довольно простая проблема, которая, как я ожидала, была бы довольно распространенной, но после нескольких часов поиска и тестирования я немного застрял.Пользовательский поиск WordPress Custom Post Type page

Все, что я пытаюсь сделать, расширяет возможности поиска по умолчанию «Поиск сообщений» на моей странице «Тип персонализированного сообщения». Вот мой код, но он ничего не возвращает, когда я ищу поиск известного адреса электронной почты. У меня такое чувство, что я могу полностью лаять на неправильном дереве. Можно ли рекомендовать решение ...

function iymp_modify_mp_posts_search($query) { 

    /* 
    * If admin and if my custom post type 
    */ 
    if (is_admin() && $query->query_vars['post_type'] === 'mp_post') { 

     /* 
     * Show 200 posts per page in ascending order 
     */ 
     $query->set('posts_per_page', '200'); 
     $query->set('order', 'ASC'); 

     /* 
     * If user entered a search term 
     */ 
     if (isset($_GET['s'])) { 
      /* 
      * As well as searching in the title (default behaviour), search in 
      * the _email_key field as well. 
      * *** Doesn't work *** 
      */ 
      $query->query_vars['meta_query'][] = array(
       'key' => '_email_key', 
       'value' => $_GET['s'], 
       'compare' => 'LIKE', 
      ); 

     } 
    } 
} 
add_action('pre_get_posts', 'iymp_modify_mp_posts_search'); 

Может быть, проблема в том, что WP является операция AND поиски в названии и _email_key полей. Если это проблема, как бы я их?

ответ

0

Проблема была в самом деле в том, что WP выполняет поиск AND в заголовке и в полях _email_key.

Чтобы выполнить поиск ИЛИ, я попытался слить результаты WP_Query, как показано здесь, - https://wordpress.stackexchange.com/questions/55519/can-i-merge-2-new-wp-queryvariable-s - в ответе руководства. Однако это не было отличным решением и привело к неустойчивому поведению.

Правильное решение, которое я нашел в том, чтобы изменить запрос, используя WP пользовательского запроса, как показано в коде (который требует некоторых модификаций) здесь - http://codex.wordpress.org/Custom_Queries ..