✅ Новости WEB и WordPress, темы, плагины. Здесь мы делимся советами и лучшими решениями для веб-сайтов.

Поиск метаданных постов в административной области WordPress

22

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

Это может быть действительно мощный API, когда вам нужно связать определенную информацию с вашими сообщениями (или, если вы хотите еще больше абстрагироваться, со своими моделями).

Тем не менее, что происходит, когда вы хотите включить информацию из таблицы метаданных, но не имеете удобных плагинов, таких как SearchWP или Relevanssi?

Кроме того, предположим, что вариант использования предназначен только для администраторов и только для области администрирования WordPress. То есть вы хотите искать свои сообщения на экране «Все сообщения », но также хотите включить метаданные сообщений в критерии поиска.

Что тогда?

Метаданные поисковых сообщений

По умолчанию всякий раз, когда вы ищете сообщения в области администрирования WordPress, он будет искать фразу в заголовке сообщения, отрывке сообщения и содержании сообщения, а затем возвращать эти результаты.

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

  • включать части фразы, чтобы он не искал что-то дословно в статье,
  • и, конечно же, должным образом обработать случай, если поисковый запрос не введен, чтобы экран «Все сообщения» по- прежнему можно было просматривать в его стандартном формате.

Это означает, что нам нужно не только изменить поисковый запрос, чтобы включить мета-ключ и мета-значение, но нам нужно правильно экранировать целые фразы, чтобы мы могли использовать LIKEоперацию, а не INоперацию или =операцию.

Поиск метаданных постов в административной области WordPress

Некоторые из вещей, которые важно знать, прежде чем читать остальную часть этой статьи, включают в себя:

В конечном итоге нам понадобится два хука с двумя пользовательскими функциями. И поскольку я не могу предоставить полный пример того, как это может выглядеть в вашем случае использования, код должен быть немного обобщенным.

Подключение к поиску

Ниже вы увидите три вещи:

  1. Подтверждение того, что пользователь находится в области администрирования и находится на странице редактирования.
  2. Пользователь ввел поиск.
  3. Поисковая фраза была преобразована в массив, экранирована и добавлена ​​в свойство метазапроса экземпляра WP_Query.

См. ниже :

Предполагая, что все вышеперечисленное верно, это обновит запрос, который выполняется в базе данных WordPress, до того, как будет отображена следующая страница, чтобы результаты включали информацию о метаданных.

Обновление предложения WHERE

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

По умолчанию запрос строится с использованием ANDоперации, что мешает нам правильно просматривать заголовки постов, выдержки, содержание и метаданные; однако запрос необходимо обновить, чтобы в нем использовалась ORоперация.

Буквально это означает, что он будет искать в заголовке, содержании, выдержке или метаданных.

Я решил использовать регулярное выражение в своей реализации, но ваша реализация может работать с заменой подстрок. Таким образом, немного закомментировано, чтобы дать вам максимальную гибкость.

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

Есть и другие способы

Обратите внимание, что есть невероятно гибкие способы работы с WP_Query для получения нужных вам результатов. И ваша реализация будет варьироваться в зависимости от того, что вы делаете.

Так что считайте это одним из многих способов, которые можно использовать; однако знайте, что если у вас есть:

  1. один ключ,
  2. значение (или значение, которое можно разделить на массив),
  3. и вы хотите искать метаданные вместе с традиционным контентом публикации

Тогда это сработает.

Источник записи: tommcfarlin.com

Этот веб-сайт использует файлы cookie для улучшения вашего опыта. Мы предполагаем, что вы согласны с этим, но вы можете отказаться, если хотите. Принимаю Подробнее