WordPress шорткод преобразования HTML элементов в их сущности

Опубликовано: 01.09.2018

Когда вы на страницах своего блога хотите отобразить HTML-код, например текст шаблона сайта или PHP скрипт, то вам необходимо преобразовать специальные символы в их сущности (коды символов). Это необходимо для того, чтобы текст со спецсимволами не воспринимался браузером как HTML-теги, функции PHP и т.п., то есть чтобы код не исполнялся, а отображался на экране.

Раньше для этих целей отлично подходил HTML тег <xmp> . Который сообщал браузеру, что содержимое внутри нужно отобразить «как есть» и шрифтом фиксированной ширины.

Все браузеры его успешно поддерживают, но официально он не разрешен для использования в HTML спецификации. То есть вы можете использовать его на свой страх и риск. У пользователей, скорее всего всё будет прекрасно работать, но валидацию ваш сайт не пройдет.

Чем заменить тег XMP

В WordPress самый простой способ — это использовать PHP функции преобразования спецсимволов в HTML сущности и вставлять шорткоды в необходимых местах.

Шорткоды — это функции PHP, которые можно задействовать внутри содержимого поста, используя условные обозначения. Например стандартный вордпрессовский шорткод [gallery] позволяет вывести галерею внутри поста.

Подробнее о функциях преобразования тегов в HTML сущности читайте здесь: https://moonback.ru/page/preobrazovanie-tegov-v-html-sushhnosti

Шорткод для преобразования спецсимволов в их сущности

Так как в WordPress нет готового шорткода для преобразования спецсимволов в их HTML сущности, то мы создадим его сами. Для этого добавьте нижеследующий код в файл functions.php вашей темы WordPress:

/* Шорткод для преобразования в сущности */ function mb_html_code_shortcode ($atts , $content = null ) { return htmlspecialchars( $content, ENT_QUOTES); } add_shortcode ('code', 'mb_html_code_shortcode');

Как использовать шорткод

Для того, чтобы преобразовать спецсимволы в сущности используйте следующий код:

[code]Символы которые необходимо преобразовать в HTML сущности[/code]

Пример использования

Допустим вы хотите отобразить HTML код ссылки у себя в статье, то есть не опубликовать ссылку, чтобы посетитель по ней кликнул, а вывести на экран набор символов как бы он выглядел в текстовом редакторе:

<a href="https://moonback.ru/">https://moonback.ru/</a>

Тогда используйте шорткод:

[code]<a href="https://moonback.ru/">https://moonback.ru/</a>[/code]

При этом в браузере будет следующий набор символов:

&lt;a href=&quot;https://moonback.ru/&quot;&gt;https://moonback.ru/&lt;/a&gt;

И он будет лишь отображен на экране, а не исполнен.

Благодарности

При написании статьи были использованы следующие источники:

http://www.php.su/htmlspecialchars https://misha.blog/wordpress/shortcodes.html

Поделись этой страницей с друзьями!

rss