Столкнулся давича с проблемой - мне нужно было, чтобы любой посетитель сайта мог в комментариях использовать 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'a: wp-includes/kses.php, в котором собственно и указываются разрешенные теги в комментариях. Однако руками лазить в файлы движка это не дело, т.к. при обновлении придется заново все менять. И вообще с недавнего времени, для меня это нежелательная крайность
.
Альтернативное решение мне представлялось в виде hook'a, но такой хук я просто замучился искать, так и не нашел, хотя наверняка он есть. В конце, концов поняв как все это дело работает, ко мне пришла светлая и до крайности простая мысль: вызвать переменную в которой указаны дозволенные теги глобально и прилепить к ней еще немного своих, дополнительных тегов 
Выглядит это так:
/* добавляем допустимые теги в комментариях для посетителей */ global $allowedtags; $allowedtags_add = array ( 'pre' => array( 'class' => array(), 'code' => array () ), 'ul' => array(), 'li' => array(), 'ol' => array() ); $allowedtags = array_merge ($allowedtags, $allowedtags_add);
Все гениальное просто
.
Вышеуказаный код добавляет возможность писать в комментариях тег <pre> с атрибутами class и code и теги ul li ol. По анологии можно добавить любые другие теги. Однако не стоит этим злоупотреблять, в целях безопасности.
Для того, чтобы все начало работать этот код необходимо поместить в файл functionы.php вашего шаблона. Если такого файла у вас в шаблоне нет, то его нужно создать.
- Предыдущие по меткам
- Предыдущие записи
- Нумерация комментариев в WordPress ← 12.Мар.2011 // 44
- Функция вывода постов по количеству комментариев (самый комментируемые записи в WordPress) ← 25.Ноя.2010 // 23
- Автоматическое растягивание поля (textarea) комментария (версия 2) ← 18.Июл.2010 // 24
- Плагин для защиты от спама в комментариях WordPress ← 14.Июл.2010 // 80
- Избавляемся от лишних обращений к данным ← 2 Апрель 2010 // 22
- Полезный хак для WordPress, если сайт дорабатывается на локалке ← 1 Апрель 2010 // 11
- Альтернатива плагину WP-pagenavi (пагинация для WordPress) ← 29 Март 2010 // 73
Благодарю, пригодилось.
а как запретить использовать тег script? alert('Ыч');
здесь не прошло. на другом блоге прошел скрипт. выводит alert.
<script>alert('Ыч');</script>Вообще реально через форму комментариев или поисковую форму залить какой нибудь скрипт, раскрыть пути к бд, получить доступ к ней? Вопросы безопасности интересуют.
Здравствуйте, а может подскажете как решить проблему, в админке редактируя пост я добавляю html форматирование
но как только я перехожу в форму интерактивного редактирования (не html) вместо
появляется символ пробела -&nbsр; а в теге исчезает атрибут nemeтег заменяется на на -&nbsр;
Что это значит?