Пользовательские произвольные поля — это одна из самых мощных функций, доступных в WordPress.
Они особенно полезны при расширении WordPress за счет использования пользовательских типов записей. Я постоянно создаю пользовательские типы записей для таких вещей, как товары, портфолио или галереи при разработке тем WordPress для клиентов.
Эти поля очень удобны, когда нужно добавить детали товара, такие как артикулы или цены. К сожалению, поиск в WordPress по произвольным полям невозможен из коробки. Чтобы исправить это, необходимо изменить поисковый запрос WordPress, чтобы он включал пользовательские поля.
Делаем Left Join
Таблица postmeta
— это место, где в базе данных хранятся вся информация о произвольных полях. По умолчанию функция поиска WordPress настроена на поиск только в таблице posts
.
Чтобы включить данные пользовательских полей в наш поиск, нам сначала нужно выполнить левое объединение таблиц posts
и postmeta
в базе данных.
Модифицируем Query
Далее нам нужно изменить поисковый запрос WordPress, чтобы включить в него произвольные поля.
Исключаем дубликаты
Наконец, нам нужно добавить ключевое слово DISTINCT
в SQL-запрос, чтобы предотвратить появление дубликатов.
Заключение
Добавьте следующий код в файл functions.php, чтобы начать поиск WordPress по произвольным полям. Этот код не только изменит поиск во внешнем интерфейсе, но вы также сможете искать по пользовательским полям на всех экранах редактирования в админке.
Читать полностью www.kobzarev.com