Главная - Wordpress: установка & управление - Как отлючить HTML теги в комментариях
Важно!
Темы и плагины, о которых я написал свои обзоры и выложил на скачивание, могут не корректно работать на последних версиях WordPress. У меня нет физически возможности проверять все бесплатные темы и плагины WordPress на корректную работу и совместимость. Благодарю за понимание.

Как отлючить HTML теги в комментариях

Это статья 15 из 18 в серии статей Изучаем файлы шаблона

Если вы хотите отключить использование HTML в комментариях, вставьте этот код в файл functions.php вашего шаблона:

// This will occur when the comment is posted
function plc_comment_post( $incoming_comment ) {

// convert everything in a comment to display literally
$incoming_comment[‘comment_content’] = htmlspecialchars($incoming_comment[‘comment_content’]);

// the one exception is single quotes, which cannot be #039; because WordPress marks it as spam
$incoming_comment[‘comment_content’] = str_replace( «‘», ‘'’, $incoming_comment[‘comment_content’] );

return( $incoming_comment );
}

// This will occur before a comment is displayed
function plc_comment_display( $comment_to_display ) {

// Put the single quotes back in
$comment_to_display = str_replace( ‘'’, «‘», $comment_to_display );

return $comment_to_display;
}

add_filter( ‘preprocess_comment’, ‘plc_comment_post’, », 1);
add_filter( ‘comment_text’, ‘plc_comment_display’, », 1);
add_filter( ‘comment_text_rss’, ‘plc_comment_display’, », 1);
add_filter( ‘comment_excerpt’, ‘plc_comment_display’, », 1);


http://otvetykz.com — спроситьна любую тему — и вам ответят обязательно.

Навигация по серии статейВарианты одиночной страницы single.phpКак создать дочернюю тему

О Oleg Vlasov

Я более шести лет профессионально занимаюсь сайтами на CMS WordPress: перевод на русский тем и плагинов; разработка уникальных тем под заказ; сопровождение сайтов, защита и безопасность, продвижение в поисковых системах. У меня несколько своих проектов, в которых я пишу только о WordPress, продаю свои авторские работы, пишу платные и бесплатные видео-уроки. В свободное время люблю ездить на рыбалку. И еще - хочу завести собаку.

7 комментариев

  1. А у меня другая ситуация: сыпался спам, где либо поле url было заполнено+в тексте комментария ссылки, либо текст без ссылок, зато в url ссылка есть. Хотел именно блокировать его добавление.
    Пробовал убирать поле url из шаблона темы comments.php. Так тогда url поле соответственно пустое, а текст остается (пусть и без ссылок, но все же не по теме).

    Сделал так:
    1) В comments.php оставил поле ссылки на сайт, но добавил аргументы autocomplete=»off» и style=»display:none»
    2) В wp-comments-post.php прописал это после проверки на пустоту текста комментария:
    [php]
    if( preg_match(‘/(nofollow|url|link)/i’, $comment_content ) == true || 4 < strlen($comment_author_url))
    wp_die( __(&#039;<strong>ERROR</strong>: СПАМ не пройдет!’) );
    [/php]
    Что мы получаем в итоге? обычным посетителям поле для ввода сайта не видно, соответственно они не заполняют его, его длина=0 и если в тексте комментария нет таких слов как nofollow, url или link — коммент проходит
    А программы-автоспамеры по идее не видят обманку, заполняют поле с url, что приводит к выводу сообщения с ошибкой. Если они не заполняют его, но в тексте коммента есть ссылка — тоже самое выходит сообщение и комментарий не добавляется.
    Вручную спамить тоже теперь нет смысла, ссылку же не пропихнуть никуда.
    autocomplete=»off» прописал для того, чтобы не вышло так, что поле url заполнялось автоматически браузером и нормальный комментарий не проходил из-за этого.

    Лично все проверил на WP 3.5.1 — работает без проблем. Как будет со спамом пока не знаю, нужно ждать, но уверен, что теперь он сократится существенно.

    Может вдруг поможет этот способ, а то искал как сделать, чтобы комментарий блокировался, если в тексте есть ссылки — везде только преобразование его в обычный текст.

  2. Спасибо за полезную информацию, как раз в поисках решения аналогичной проблемы….

Оставить комментарий

Ваш email нигде не будет показанОбязательные для заполнения поля помечены *

*