Поиск по ключевому слову в мета поле. Как добавить произвольное поле в стандартный поиск WordPress
Есть стандартный поиск wordpress, который ищет посты по заголовку.
Мне нужно чтобы искал и по заголовку и по произвольному мета полю.
Есть стандартный поиск wordpress, который ищет посты по заголовку.
Мне нужно чтобы искал и по заголовку и по произвольному мета полю.
Вариант 1
Вот такой фильтр вам поможет:
Измените
META_KEY
на название вашего метаполя и__your_post_type__
на название типа записи.Вариант 2
Не уверен в его работоспособности, нашел в сети, по идее должен работать. Он лишен недостатка первого варианта.
Вариант 3
А вот грузовой, но тоже вариант. Два разных запроса: обычный поиск и по метаполю, а затем объединяем результат:
Вариант 4
Как добавить к стандартному поиску поиск по метаполю
В первом варианте на срабатывает поиск... Методом "проб и ошибок" понял, что параметр запроса не присваивается в строке
'value' => $query->query_vars['s'],
т.е. если жёстко прописать, например,
'value' => '111'
то успешно находит сообщения с этим значением в заданном метаполе. Но если использовать указанную в примере комбинацию, то в 'value' переданные данные из формы не присваиваются... Поисковый запрос имеет стандартный вид
https://my.domen.ru/?s=111
Упс... Дополнение. Оказывается, по первому варианту в результат попадают варианты, только если И в Titl поста И в указанном Meta-поле находятся данные из запроса после s=.
Т.е. OR не срабатывает...
Заметка по теме появилась на сайте — очередное решение этой задачи: https://wp-kama.ru/note/dobavit-poisk-po-metapolyu