Как отключить HTML без плагина в комментариях WordPress
По умолчанию wordpress позволяет определённые HTML тэги в комментариях, такие как:
1 | <a> <em> <strong> </strong></em></a> |
Большинство спам-комментариев оставляют боты и скрипты, которые используют HTML тэги. Если вы просто отключите HTML из ваших комментариев WordPress, это оградит вас от многово спама. В этом уроке вы узнаете как можно отключить HTML тэги в ваших комментариях wordpress.
Этот урок поможет вам отключать не только активные HTML тэги, но и подобные сообщения типа :
1 | <a><em><strong> |
Чтобы это осуществить просто откройте functions.php добавьте следующий код:
1 2 3 4 5 6 7 8 | function plc_comment_post( $incoming_comment ) { $incoming_comment['comment_content'] = htmlspecialchars($incoming_comment['comment_content']); $incoming_comment['comment_content'] = str_replace( "'", ''', $incoming_comment['comment_content'] ); return( $incoming_comment ); } function plc_comment_display( $comment_to_display ) { $comment_to_display = str_replace( ''', "'", $comment_to_display ); return $comment_to_display; |
P.S.
Ну, вот и всё дорогой друг. Теперь ты знаешь, как отключать html тэги в комментариях. Не забудь подписаться на мою
Твой покорный слуга Jony!
плагин комментарии wordpress
норм вещь, а главное плагинов не надо – супер!
Антон, У тебя так сейчас на сайте сделано?
Если так сделано, то из за этого не открывается окно комментирования в мини опере….
Да очень хороший совет.
Борьба со спамом это, конечно же хорошо, но запрещать теги в комментариях это уже перебор. Нужно просто установить какой-нибудь плагин для защиты от спама и все.
А у меня другая ситуация: сыпался спам, где либо поле url было заполнено+в тексте комментария ссылки, либо текст без ссылок, зато в url ссылка есть. Хотел именно блокировать его добавление.
Пробовал убирать поле url из шаблона темы comments.php. Так тогда url поле соответственно пустое, а текст остается (пусть и без ссылок, но все же не по теме).
Сделал так:
1) В comments.php оставил поле ссылки на сайт, но добавил аргументы autocomplete=”off” и style=”display:none”
2) В wp-comments-post.php прописал это после проверки на пустоту текста комментария:
if( preg_match(‘/(nofollow|url|link)/i’, $comment_content ) == true || 4 < strlen($comment_author_url))
wp_die( __('ERROR: СПАМ не пройдет!’) );
Что мы получаем в итоге? обычным посетителям поле для ввода сайта не видно, соответственно они не заполняют его, его длина=0 и если в тексте комментария нет таких слов как nofollow, url или link – коммент проходит
А программы-автоспамеры по идее не видят обманку, заполняют поле с url, что приводит к выводу сообщения с ошибкой. Если они не заполняют его, но в тексте коммента есть ссылка – тоже самое выходит сообщение и комментарий не добавляется.
Вручную спамить тоже теперь нет смысла, ссылку же не пропихнуть никуда.
autocomplete=”off” прописал для того, чтобы не вышло так, что поле url заполнялось автоматически браузером и нормальный комментарий не проходил из-за этого.
Лично все проверил на WP 3.5.1 – работает без проблем. Как будет со спамом пока не знаю, нужно ждать, но уверен, что теперь он сократится существенно.
Может вдруг поможет этот способ, а то искал как сделать, чтобы комментарий блокировался, если в тексте есть ссылки – везде только преобразование его в обычный текст.
Хорошая вещь. Нужно будет попробовать, а то эти спамеры реально уже надоели.