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 проекта. Если Вам нужна техническая поддержка по купленному у нас плагину или шаблону, то создайте тикет в личном кабинете.

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