Добавляем допустимые HTML теги в комментариях
Столкнулся давеча с проблемой - мне нужно было, чтобы любой посетитель сайта мог в комментариях использовать html тег <pre class="">
.
Но, как вам наверное известно, WordPress позволяет добавлять теги в комментариях в ограниченном виде, точнее в комментариях дозволены только такие html теги:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>
Как расширить этот список разрешенных html тегов в комментариях?
На этот вопрос я попытался ответить когда-то давно, и не без помощи со стороны. И все что я смог - это хирургически поправить файл WordPress: wp-includes/kses.php, в котором собственно и указываются разрешенные теги в комментариях. Однако руками лазить в файлы движка - не дело, т.к. при обновлении все изменения сотрутся и придется заново все менять.
Альтернативное решение мне представлялось в виде хука, но такой хук я найти не смог. В конце концов, поняв как все это дело работает, ко мне пришла светлая и до крайности простая мысль: вызвать переменную в которой указаны разрешенные теги глобально и прилепить к ней свои, дополнительные теги
Выглядит это так:
// добавляем допустимые теги в комментариях для посетителей global $allowedtags; $allowedtags_add = array ( 'pre' => array( 'class' => true, 'code' => true ), 'img' => array( 'alt' => true, 'height' => true, 'src' => true, 'width' => true, ), 'ul' => true, 'li' => true, 'ol' => true, ); $allowedtags = array_merge( $allowedtags, $allowedtags_add );
Все гениальное просто
Вышеуказанный код добавляет возможность писать в комментариях тег <pre> с атрибутами class и code и теги ul li ol. По аналогии можно добавить любые другие теги. Однако не стоит этим злоупотреблять, в целях безопасности.
Для того, чтобы все работало этот код необходимо поместить в файл functions.php
вашего шаблона. Если такого файла у вас в шаблоне нет, то его нужно создать.
Разрешим теги/атрибуты тегов в контенте записи
Чтобы расширить список допустимых тегов для контента записи, сделайте все тоже самое, только с глобальной меременной $allowedposttags.