Вопрос или проблема
Я хотел бы заблокировать некоторые конкретные запрещенные ключевые слова от поиска на WordPress. Или я хотел бы показать редирект, когда кто-то ищет определенные ключевые слова. Как это сделать?
Вы ищете pre_get_posts
. Это действие выполняется между составлением (поискового) запроса и фактическим запросом, что позволяет вам изменить запрос. Таким образом, это позволит вам перехватить запрещенные ключевые слова следующим образом:
add_action( 'pre_get_posts', 'wpse338558_intercept_banned_keywords' );
function wpse338558_intercept_banned_keywords ($query) {
$banned = array ('word1','word2','word3');
if (in_array ($query->query_vars['s'], $banned)) $query->s="";
}
Примечания:
- Вышеуказанное просто очистит поиск, так что пользователю не будет никакой обратной связи. Хакерское решение — это использовать очень obscure поисковый термин, например
jlwenuhrofslslfiehlserlisehrlilfheeipeueiq
и перехватить этот 404, чтобы отобразить сообщение. - Вышеуказанное будет перехватывать только одиночные ключевые слова. Если кто-то ищет два запрещенных ключевых слова одновременно, он пройдет. Поэтому вам нужно будет более сложное условие, чтобы сделать это надежным.
Чтобы заблокировать конкретные ключевые слова от появления в результатах поиска на сайте WordPress, вы можете использовать плагин, например “Search Exclude” или “WP Search Block”. Вот шаги для использования плагина “Search Exclude”:
Перейдите в панель управления WordPress и перейдите в “Плагины” → “Добавить новый”. Найдите плагин “Search Exclude” и установите его. После установки активируйте плагин. Перейдите в “Настройки” → “Search Exclude” из панели управления WordPress. Введите ключевые слова, которые вы хотите заблокировать, в поле “Исключить ключевые слова”, разделяя их запятыми. Сохраните изменения. Теперь, когда пользователи ищут любое из заблокированных ключевых слов, они не появятся в результатах поиска. Если вы хотите разблокировать ключевое слово, просто удалите его из поля “Исключить ключевые слова” в настройках плагина.
Ответ или решение
Как заблокировать конкретные ключевые слова в поиске на WordPress
Вопрос блокировки определённых ключевых слов в поиске на WordPress может возникнуть по различным причинам, включая защиту от нежелательного контента или обеспечение соответствия корпоративным стандартам. Существует несколько способов реализации этой задачи, и мы подробно рассмотрим каждый из них.
1. Использование хуков WordPress
Одним из эффективных способов блокировки определённых ключевых слов является использование хука pre_get_posts
. Этот хук позволяет вам изменить запрос перед его выполнением, что дает возможность отфильтровать нежелательные ключевые слова.
Вот пример кода, который можно добавить в файл функций вашей темы (functions.php
):
add_action( 'pre_get_posts', 'wpse338558_intercept_banned_keywords' );
function wpse338558_intercept_banned_keywords( $query ) {
// Массив запрещённых ключевых слов
$banned = array('запрещенное1', 'запрещенное2', 'запрещенное3');
// Проверяем, если это главный запрос и он предназначен для поиска
if ( $query->is_search && !is_admin() ) {
// Разбиваем запрос на ключевые слова
$search_terms = explode(' ', $query->query_vars['s']);
// Фильтруем ключевые слова
foreach ( $search_terms as $term ) {
if ( in_array( $term, $banned ) ) {
// Можно либо просто очистить запрос
$query->set('s', '');
// Или перенаправить на страницу 404 с сообщением
// wp_redirect( home_url('/404') );
// exit;
}
}
}
}
Примечания:
- Убедитесь, что код добавляется в дочернюю тему или в плагин, чтобы избежать потери данных при обновлении темы.
- В примере выше код очищает запрос, если пользователь ищет запрещенные ключевые слова. Вы также можете настроить редирект на страницу с сообщением об ошибке.
- Этот код блокирует только одиночные ключевые слова. Если вам нужно блокировать несколько слов одновременно, потребуется расширить логику.
2. Использование плагинов
Если вы не хотите вносить изменения в код, вы можете воспользоваться плагинами, которые упрощают процесс блокировки ключевых слов. Рассмотрим шаги для использования плагина "Search Exclude":
- Перейдите в панель управления WordPress и выберите меню «Плагины» → «Добавить новый».
- Найдите плагин "Search Exclude", установите его и активируйте.
- После активации перейдите в меню «Настройки» → «Search Exclude».
- В поле «Исключенные ключевые слова» введите слова, которые необходимо заблокировать, разделяя их запятыми.
- Сохраните изменения.
Теперь поисковые запросы, содержащие заблокированные ключевые слова, будут игнорироваться, и пользователи не увидят соответствующих результатов.
Заключение
Блокировка определённых ключевых слов в поисковых запросах на сайте WordPress может быть реализована как с помощью программирования, так и с использованием готовых плагинов. Если вы изменяете код, убедитесь, что все изменения тестируются и документируются. В случае с плагинами рекомендуется периодически проверять совместимость с новыми версиями WordPress.
Эти подходы помогут вам контролировать контент, который отображается пользователям и поддерживать соответствие установленным стандартам вашей компании.