У меня на многих 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