Как отключить html теги в комментариях и убрать стандартную надпись под формой комментирования

Здравствуй, уважаемый посетитель!

Многие пользователи WordPress хотят отключить html в комментариях и убрать строчку после формы комментирования: «Можно использовать следующие HTML-теги и атрибуты: <a href=»» title=»»> <abbr title=»»> <acronym title=»»> <b><blockquote cite=»»> <cite><del datetime=»»> <em> <i> <q cite=»»> <strike> <strong>». Или просто заменить ее на свой текст. Сегодня я расскажу, как это можно сделать.

Отключаем html теги в комментариях.

Чтобы отключить саму возможность комментирования с возможностями HTML нам нужно добавить в файл functions.php следующий код:

//отключаем html в комментариях начало
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; }

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);

//отключаем html в комментариях конец

Теперь комментаторы не смогут использовать html теги и атрибуты. Но по-прежнему остается надпись под формой ввода. Она гласит, что пользователь все еще может использовать html теги и атрибуты.

Убираем надпись под формой комментирования.

Для этого нам нужно открыть comment-template.php который лежит в domen.ru/wp-includes/
Найти в нем строчку <?php echo $args[‘comment_notes_after’]; ?> и удалить. В таком случае вы полностью удалите какое – либо сообщение после поля ввода комментария.

А если необходимо написать свой текст после формы комментария, то эту строчку удалять не надо, а нужно всего лишь в этом же файле найти строчку, где есть <p class=»form-allowed-tags»>(в моем случае номер строки был 1537, может и у вас будет такой же). Там видим функцию sprintf().
Как раз она и выводит весь наш текст с тегами.
Внимание! Теги она выводит отдельно.

Давайте разберем. Вот вся строчка:

<p class=»form-allowed-tags»>’ . sprintf( __( ‘You may use these <abbr title=»HyperText Markup Language»>HTML</abbr> tags and attributes: %s’ ), ‘ <code>’ . allowed_tags() . ‘</code>’ ) . ‘</p>

Функция sprintf выводит надпись, %s выводит функцию . allowed_tags() . , allowed_tags() выводит разрешенные теги, а ‘ <code>’ и ‘</code>’ показывают, что это именно HTML вариант разрешенных тегов.

Следовательно, если мы хотим изменить ТОЛЬКО надпись, а теги оставить, то меняем You may use these <abbr title="HyperText Markup Language">HTML</abbr> tags and attributes: , а %s оставляем.
А если хотим, что бы тегов не было, а была только надпись, то удаляем %s.

Вот как эта строчка выглядит у меня:
sprintf( __( ‘Вы <strong>НЕ</strong> можете использовать <abbr title=»HyperText Markup Language»>HTML</abbr> теги и атрибуты.’ ), ‘ <code>’ . allowed_tags() . ‘</code>’ )

Что бы написать русскими буквами и на сайте все отображалось нормально, перекодируйте файл comment-template.php в UTF-8 (по умолчанию он в ANSI)
Ни в коем случае не удаляйте ,' &lt;code&gt;' . allowed_tags() . '&lt;/code&gt;' ) . '&lt;/p&gt;', — у меня перестал работать сайт из-за этого. Хотя может и что-то лишнее удалил, но разбираться уже не хочется.

На этом всё, с вами был Atamovich.

 

© 2018 Atamovich.ru