Включить постмету в поиск WordPress - PullRequest
1 голос
/ 10 февраля 2012

Как мне сказать, что функция поиска WordPress по умолчанию также смотрит на данные постметы?

Например, у меня есть постамета-ключ с именем 'item_number', и если кто-то ищет '113', я бы хотел, чтобы он проверил значение ключа, а также содержание сообщения.

Спасибо!

Ответы [ 4 ]

0 голосов
/ 03 сентября 2018

Быстрый и грязный способ включить мета-значения в область поиска: вы можете подключиться к pre_get_posts и добавить meta_query следующим образом:

Внутри вашего functions.php :

add_filter( 'pre_get_posts', 'so_9224493_adjust_search_query');
function so_9224493_adjust_search_query( $query ) {
    if ( !is_admin() && $query->is_search ) { //the !is_admin() boolean ensures that this does not affect your dashboard
        $meta_query_arguments = array(
            array(
                'key' => 'item_number', //this is where you would put your meta key
                'value' => $query->query_vars['s'],
                'compare' => 'LIKE',
            ),
        );
        $query->set('meta_query', $meta_query_arguments);
    };
}

Единственная проблема с этим маршрутом состоит в том, что он будет включать мета-запрос, так что ваш поисковый запрос будет соответствовать толькосообщения, содержащие поисковый запрос в заголовке / содержимом / отрывке и в метаполе, что может быть нежелательным для вас.

0 голосов
/ 14 февраля 2012

Этот сайт предоставил ответ, который я искал: http://flav36rs.com/2010/03/15/extend-wordpress-search-to-include-custom-post-meta/

Ниже учебника есть несколько полезных комментариев, на которые стоит обратить внимание, если у вас возникнут проблемы.


EDIT:

Ссылка выше не работает.

В конечном итоге я написал полный пользовательский поисковый запрос, используя JOINS для создания нужного мне запроса.

0 голосов
/ 13 января 2018

Очень простой обходной путь: поместите все мета-значения, которые вы хотите найти для поиска, в поле post_exerpt (используйте save_post action ), чтобы они были найдены без каких-либо модификаций поиска.

0 голосов
/ 10 февраля 2012

Вы должны заменить свою функцию поиска Wordpress своей собственной.Проверь это ответ .

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