Как заблокировать конкретные ключевые слова в поиске на WordPress?

Вопрос или проблема

Я хотел бы заблокировать некоторые конкретные запрещенные ключевые слова от поиска на 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="";
  }

Примечания:

  1. Вышеуказанное просто очистит поиск, так что пользователю не будет никакой обратной связи. Хакерское решение — это использовать очень obscure поисковый термин, например jlwenuhrofslslfiehlserlisehrlilfheeipeueiq и перехватить этот 404, чтобы отобразить сообщение.
  2. Вышеуказанное будет перехватывать только одиночные ключевые слова. Если кто-то ищет два запрещенных ключевых слова одновременно, он пройдет. Поэтому вам нужно будет более сложное условие, чтобы сделать это надежным.

Чтобы заблокировать конкретные ключевые слова от появления в результатах поиска на сайте 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":

  1. Перейдите в панель управления WordPress и выберите меню «Плагины» → «Добавить новый».
  2. Найдите плагин "Search Exclude", установите его и активируйте.
  3. После активации перейдите в меню «Настройки» → «Search Exclude».
  4. В поле «Исключенные ключевые слова» введите слова, которые необходимо заблокировать, разделяя их запятыми.
  5. Сохраните изменения.

Теперь поисковые запросы, содержащие заблокированные ключевые слова, будут игнорироваться, и пользователи не увидят соответствующих результатов.

Заключение

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

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

Оцените материал
Добавить комментарий

Капча загружается...