Фильтрация имени админа при комментировании гостями в Wordpress

У меня на многих WP-сайтах гости могут комментировать, для этого им достаточно написать любое имя, любой визуально валидный е-мейл и сообщение больше 1 символа. Некоторые

дибилы

посетители пытаются таким образом писать что-то от имени администрации, выдавая себя за меня :) Пост о том, как с этим бороться.

Нужно сделать две вещи:

  • визуально изменить вид имени админа

  • фильтровать похожие по названию/описанию имена

Первый пункт достаточно понятен - можно увеличить на пару пунктов размер шрифта для имени админа, покрасить его в какой-нибудь отличный от других цвет, ну и жирным можно сделать. Как это делается - идем в папку с темой, видим файл comments.php, открываем, ищем функцию “comment_author_link()” - она отвечает за вывод имени и, как правило, обрамлена html-тэгом “cite”. Нам надо добавить условие, при котором, если комментарий от админа, к этому тэгу дописывался бы стиль. Я сделал вот так, но по хорошему надо бы завести стиль в какой-нибудь style.css:

<cite style="color:<?php if ($comment->user_id==1) echo 'red;font-weight:bold'; else echo 'grey'; ?>;"><?php comment_author_link()?></cite>

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

Второй пункт - регулярками отсекать слова “админ”, “модератор”, и их производные. Для этого идем в корень своего WP, открываем wp-comments-post.php, там вначале идут всевозможные проверки введенных данных пользователем при комментировании. Нам надо где-нибудь после проверки e-mail’а - строка:

wp_die( __('Ошибка: Пожалуйста, введите e-mail правильно') );

вписать вот такой код:

$pattern = "#[aAаАоОoO0][dDдДb][мМmM][иИiIl][nNнНm]#isu";
$pattern2 = "#[мМmM][оОoO0][дДdD][еЕeE][рРpP]#isu";

if ( preg_match($pattern, $_POST['author']) || preg_match($pattern2, $_POST['author'])) wp_die( __('Ошибка: нельзя употреблять в имени слова админ или модератор!') );

Вроде все нагляно, первый паттерн спасает от слов “админ”, второй - от “модератор”. Если находятся извращенцы, которые обходят их - дополняете эти паттерны. Но, как правило, после нескольких неудачных попыток народ к теме подражания остывает, и настоящему админу становится более спокойней :)

PS: мне надо прорекламить свой говносайт с партнеркой, так что далее будет идти спец.текст :) Попробуйте видеочат онлайн знакомств, там можно найти новых интресных друзей :)

PPS: да, если ваш сайт в кодировке win1251, надо убрать на концах паттернов модификатор “u” - он юзается только для utf-8

Архив обсуждения

Исторические комментарии сохранены из старого блога. Это архив, новые комментарии не добавляются. Всего: 1.

  1. Аськоман

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