Установка standalone версии Akismet для сайта

Akismet — веб-сервис от создателей WordPress, анализирующий качество содержимого, отправляемого на веб-сайты. Сюда включаются: комментарии, сообщения, отправляемые через контакт-формы, блоги, сообщения на форумах и прочее.

Простыми словами: человек пишет комментарий на вашем сайте, класс отсылает его для проверки на сервис Akismet, в результате вы получает от сервиса ответ — является ли спамом данный комментарий или нет.

Чтобы воспользоваться данным веб-сервисом, необходимо скачать Akismet класс (написан под РНР5) и получить WordPress API key (API-key не привязан ни к какому конкретному сайту, и вы сможете использовать там, где вам понадобиться)

Подключается он очень просто:

<?php
require_once 'config.php';
require_once 'functions.php';
require_once 'akismet.class.php';
 
// Получим данные(из GET, POST)
$wordpressAPI = 'Сюда_введите_ваш_API';
$name = getParam('name', null, 'text');
$email = getParam('name', null, 'text');
$url = getParam('url', null, 'text');
$comment = getParam('comment', null, 'text');
 
// Если заполнены обязательные поля
if ($name && $comment) {
    // Инициализируем наш класс
    $akismet = new Akismet('http://'.$_SERVER['SERVER_NAME'].'/', $wordpressAPI);
    // Проверим API на валидность
    if($akismet->isKeyValid()) {
        // Установим переменные для проверки на веб-сервисе
        $akismet->setCommentAuthor($name);
        $akismet->setCommentAuthorEmail($email);
        $akismet->setCommentAuthorURL($url);
        $akismet->setCommentContent($comment);
        $akismet->setPermalink($_SERVER['HTTP_REFERER']);
 
        // Проверим сообщение
        if($akismet->isCommentSpam()) {
            // Сообщение помечено как спам
        } else {
            // Сообщение - не спам
        }
    }
}
// Вернем пользователя на ту страницу,откуда откуда он пришел
header('Location: '.preg_replace('|&rnd=[0-9]+|si', '', $_SERVER['HTTP_REFERER']).'&rnd='.time());

Случается, что хорошие комментарии не проходят и попадают в спам, либо наоборот — плохие спамерские проходят. Для устранения данной проблемы в классе есть две полезные функции.

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

<?php
$akismet->submitHam();
?>

Этой функцией вы сообщите Akismet, что комментарий, определённый как спам, на самом деле в порядке.

<?php
$akismet->submitSpam();
?>

Здесь же наоборот. Вы сообщите о спаме, информация о нем добавится в базу, и в следующий раз такой комментарий не будет одобрен.

Ссылки

Источник: https://www.kobzarev.com/programming/akismet-install/

Михаил Кобзарёв

Суровый русский тимлид. Жил в Магадане, в офисе московских веб студий и в Тульской деревне. Виртуозно знает WordPress, PHP, ООП, Vue.js и вот это вот все. Делает крутые высоконагруженные сайты, поэтому уже почти захватил весь рынок WordPress разработки в России. Не дает никому делать сайты без спроса. Ведет блог о разработке, дайджест в телеграмме и в ВК. Любит сиськи, баню и радиоэлектронику. 100% патриот (но это не точно). Тролль 542 уровня. Ездит в отпуск раз в 5 лет.

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

%d такие блоггеры, как: