esc_html() — экранирует теги HTML

Возвращает строку, предварительно экранируя в ней HTML-теги. Если в строке нечего экранировать, то функция возвратит ее в первоначальном состоянии.

esc_html( $text )
$text
(строка) Текст или HTML-код, который нужно обработать.

Пример

Давайте подробно рассмотрим на примере, что делает эта функция. К примеру возьмем ссылку на мой сайт и пропустим её через esc_html():

$escaped_html = esc_html( '<a href="https://misha.blog">Миша Рудрастых</a>' );

Переменная $escaped_html теперь содержит следующую строку:

<a href="https://misha.blog">Миша Рудрастых</a>

Если мы попробуем вывести эту переменную на страницах сайта, то получим: <a href="https://misha.blog">Миша Рудрастых</a>.

А если бы мы попробовали сделать то же самое, не задействовав при этом esc_html(), то у нас просто вставилась бы ссылка: Миша Рудрастых.

Миша

В последние годы я долго не знал, что мне делать с сайтом misha.blog, ведь он практически не приносит никакого профита, но недавно я осознал, что моя миссия – способствовать распространению WordPress. Ведь WordPress – это лучший движок для разработки сайтов – как для тех, кто готов использовать заложенную структуру этой CMS, так и для тех, кто предпочитает headless решения.

Сам же я впервые познакомился с WordPress в 2009 году. Организатор WordCamp. Преподаватель в школах Epic Skills и LoftSchool.

Если вам нужна помощь с вашим сайтом или может даже разработка с нуля на WordPress / WooCommerce — пишите. Я и моя команда сделаем вам всё на лучшем уровне.

Комментарии — 3

Комментирование этого поста более не доступно.
  • Vitalii 24 января 2020 #

    Здравствуйте! Спасибо за статью. Все понятно, кроме одного момента. Для чего использовать esc_html() для только одного слова без каких либо тегов? Это код со страницы WP 404.php

    <h2 class="widget-title"><?php esc_html_e( 'Most Used Categories', 'domain' ); ?></h2>
    • Миша 24 января 2020 #

      Здравствуйте,

      Спасибо за классный вопрос!
      Да, в данном примере это выглядит как обычное слово, но, как вы помните, _e() и производная от неё esc_html_e()функции локализации, а это значит, что когда кто-то будет переводить эту строку "Most Used Categories", то он может перевести её как захочет и во что захочет, в том числе воткнув от себя какие-то теги.

      И тот человек, который писал код вашего 404.php исходил из принципа – "никому нельзя доверять", что в принципе имеет смысл при написании безопасного кода.

      • Vitalii 24 января 2020 #

        Благодарю за оперативный ответ!)