Додаємо допустимі 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 .