Php — Имена Поиска Мета_Запросов, Когда Они Имеют Средние Инициалы

  • Автор темы Weu21
  • Обновлено
  • 21, Oct 2024
  • #1

Мне нужно создать форму поиска, в которой я ищу членов компании по их полному имени (имя + средний инициал + фамилия). Все имена имеют такую ​​форму: Джон Б. Доу

Приведенный ниже код работает в этих случаях: Джон, Джон Б., Доу, Б., Джон Б. Доу, но не работает поиск по запросу

 if (isset($_POST['search']) && $_POST['search'] != -1) {

$args['meta_query']['name_search']['key'] = "_full_name";

$args['meta_query']['name_search']['compare'] = "LIKE";

$args['meta_query']['name_search']['value'] = $_POST['search'];

}
 

John Doe

Как мне улучшить запрос, чтобы работал и с именем и с фамилией(Джон Доу) и имя, фамилия плюс средний инициал (Джон Б. Доу)?

#php #wp-запрос #поиск #мета-запрос

Weu21


Рег
03 Dec, 2019

Тем
82

Постов
178

Баллов
648
  • 25, Oct 2024
  • #2

Самый простой подход в таких случаях — установить другое настраиваемое поле, которое вы будете использовать для поиска.

Итак, если имя выглядит живым, то:

 
 <first_name> <initial> <last_name>#<first_name> <last_name>#<last_name> <first_name>
 

Затем вы можете создать еще одно поле, которое будет содержать:

<first_name> <initial> <last_name>

(Символ # является разделителем, поэтому вам следует использовать любой символ, который никогда не встречается в полях, которые вы разделяете.)

Затем вы можете использовать это поле для поиска. Вы сможете искать не только Джона Доу, но и Доу Джона.

Все, что вам нужно сделать, это:

  1. При сохранении постов (например, с помощью хука save_post) убедитесь, что специальное поле для поиска обновлено.
  2. Используйте это поле в своем запросе вместо исходного поля.

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

 

Dr.Scab


Рег
16 Oct, 2006

Тем
89

Постов
208

Баллов
673
Похожие темы Дата
Похожие темы
Woocommerce Оффтоп. Как Запустить Многоязычный Сайт Wordpress В Двух Папках За Одну Установку?
Есть Ли Премиум-Плагин Для Бронирования Встреч?
Пользовательские Типы Сообщений. Есть Ли Способ Установить Родительские/Дочерние Отношения Исключительно В Ссылках Меню Wp?
Как Поставить Стиль В Очередь Перед Style.css
Уровневый — Условия Foreach
Перенаправить Пользователей, Которые Не Вошли В Систему, Не Являются Авторами Сообщений И Не Являются Администраторами. Внешний Интерфейс
Php – Почему Мой Файл Cookie Не Сбрасывается При Выходе Из Системы?
Настраиваемое Поле — Поиск И Порядок Столбцов По Метазначению В Администраторе
Jquery — Wordpress И Модальное Всплывающее Окно — Как Сделать Уже Загруженные Ресурсы Javascript Доступными В Модальном Режиме?
Постоянные Ссылки. Как Wordpress Может Узнать Страницу После Перенаправления По Правилам Перезаписи?
Тем
403,760
Комментарии
400,028
Опыт
2,418,908

Интересно