posts_search

16 февраля, 2025
Узнайте, как использовать хук posts_search для изменения SQL-запроса поиска в WordPress
Быстрая навигация по записи

Описание posts_search

— Filter

Хук posts_search позволяет изменить SQL-запрос, который используется для выполнения поиска по записям в WordPress. Он срабатывает при выполнении поиска в админке или на сайте, позволяя кастомизировать логику поиска и добавлять дополнительные условия фильтрации

Примеры использования

Пример изменения запроса поиска для игнорирования регистра:

				
					add_filter('posts_search', function($search, $wp_query) {
   global $wpdb;
   if(!empty($search)) {
       $search = 'AND (UPPER(' . $wpdb->posts . '.post_title) LIKE UPPER('%' . esc_sql($search) . '%') OR UPPER(' . $wpdb->posts . '.post_content) LIKE UPPER('%' . esc_sql($search) . '%'))';
   }
   return $search;
}, 10, 2);
				
			

В этом примере мы изменяем SQL-запрос, чтобы поиск был нечувствителен к регистру.

Пример добавления условия для поиска только по определенным типам записей:

				
					add_filter('posts_search', function($search, $wp_query) {
   if($wp_query->get('post_type') === 'product') {
       $search .= ' AND post_type = ''product''';
   }
   return $search;
}, 10, 2);
				
			

В этом примере мы добавляем условие, чтобы искать только среди товаров.

Пример изменения запроса для поиска по мета-полям:

				
					add_filter('posts_search', function($search, $wp_query) {
   global $wpdb;
   if(!empty($search)) {
       $search .= ' OR ' . $wpdb->postmeta . '.meta_value LIKE ''%' . esc_sql($search) . '%''';
       $search .= ' AND ' . $wpdb->postmeta . '.meta_key = ''_custom_meta''';
   }
   return $search;
}, 10, 2);
				
			

Здесь мы добавляем возможность поиска по мета-полям с определенным ключом.

— Лучшие практики

– Использование

Используйте этот хук, когда необходимо изменить логику поиска по записям в WordPress

– Производительность

Следите за тем, чтобы изменения не ухудшали производительность запросов, особенно при больших объемах данных

– Предупреждения

Будьте осторожны с изменениями, чтобы не нарушить логику поиска, используемую по умолчанию

Альтернативы

Тип: action

Этот хук позволяет изменять параметры запроса перед его выполнением, включая условия поиска

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

Оставить комментарий

Нужна помощь с WordPress WooCommerce плагинами темой оптимизацией ?

Упрощаем сложное, создаем впечатляющее!
100% без риска
Нет обязательств по найму
Бесплатная оценка
5900 ₽
Услуги и врачи
Шаблон медицинского сайта включает онлайн-запись к врачу, каталог мед услуг, список врачей с опытом и рейтингом. Раздел вопрос/ответ обеспечивает оперативное взаимодействие с клиентами.

Поможем вывести Ваш бизнес на новый уровень!

Проснувшись однажды утром после беспокойного сна, Грегор Замза обнаружил

Добро пожаловать!

Авторизуйтесь, чтобы продолжить

или

Забыли пароль? Восстановить

* Если аккунта у Вас еще нет, то он будет создан автоматически.

* Отправляя данные, вы соглашаетесь с политикой конфиденциальности.

Давайте составим техническое задание!
100% без риска
Нет обязательств по найму
Бесплатная оценка стоимости
Здравствуйте! Я асистент на основе искусственного интеллекта. Вы можете общаться со мной, как с человеком — задавайте вопросы, описывайте свои идеи и требования.

С удовольствием помогу вам составить техническое задание для вашего WordPress проекта. Если Вам нужна техническая поддержка по купленному у нас плагину или шаблону, то создайте тикет в личном кабинете.

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