n-wp.ru — блог о WordPress

Как автоматически отклонять спам в комментариях, используя стоп-слова

Многие пользуются для защиты от спама в комментариях навороченными плагинами, например, Akismet. Я же предпочитаю решать эту проблему либо с помощью невидимой каптчи, либо вообще без плагинов. Вот один способ, как без плагинов защитить комментарии от спама, используя стоп-слова.

Откройте файл functions.php, и вставьте в него такой код:

Этот код создает функцию, которая проверяет вводимый в качестве комментария текст. Если текст содержит запрещенные слова (они перечислены в коде, по одному слову на каждую строчку), то комментарий считается спамом.
Что же тут такого, ведь в WordPress уже есть встроенный список, который справляется с этой задачей? Дело все в том, что эта функция не просто препятствует спаму — она не дает ему даже опубликоваться, закрывая соединение, в отличие от встроенного списка в WordPress, который все же пропускает текст в базу данных, просто помечая его как спам. Такой подход я считаю более действенным — не нужно периодически чистить комментарии, так как будут опубликованы только настоящие, а спамеры не получат даже шанса проникнуть в блог.

1 комментарий

  • Добрый день! Подскажите, этот код вставлять в functions.php, который в /wp-includes лежит? Вставил код полностью, получил:
    Fatal error: Call to undefined function add_action() in …/wp-includes/functions.php on line 4603, страница не открывается
    без вот этой строчки add_action(‘init’, ‘drop_bad_comments’); работает, но не режет спам
    что нужно делать? стоит WP 3.2. Заранее спасибо!