esc_html()
экранирует строку, чтобы она не анализировалась как HTML. Например, <
такие символы преобразуются в <
. Для читателя это будет выглядеть так же, но это означает, что если выводится значение, <script>
оно не будет интерпретироваться браузером как фактический тег сценария.
Используйте эту функцию всякий раз, когда выводимое значение не должно содержать HTML.
esc_attr()
экранирует строку, чтобы ее можно было безопасно использовать в атрибуте HTML, class=""
например. Это предотвращает выход значения из атрибута HTML. Например, если значение равно "><script>alert();</script>
и вы пытались вывести его в атрибуте HTML, он закроет текущий тег HTML и откроет тег сценария. Это небезопасно. Экранируя значение, он не сможет закрыть атрибут и тег HTML и вывести небезопасный HTML.
Используйте эту функцию при выводе значения внутри атрибута HTML.
esc_url()
экранирует строку, чтобы убедиться, что это правильный URL.
Используйте эту функцию при выводе значения внутри атрибута href=""
или src=""
.
esc_textarea()
экранирует значение, чтобы его можно было безопасно использовать в <textarea>
элементе. Экранируя значение с помощью этой функции, он предотвращает <textarea<
закрытие <textarea>
элемента и вывод его собственного HTML-кода.
Используйте эту функцию при выводе значения внутри <textarea>
элемента.
esc_html()
а esc_attr()
также есть версии, оканчивающиеся на __()
, _e()
и _x()
. Они предназначены для вывода переводимых строк.
WordPress имеет функции, __()
, _e()
и _x()
, для вывода текста , который может быть переведен. __()
возвращает переводимую строку, _e()
повторяет переводимую строку и _x()
возвращает переводимую строку с заданным контекстом. Вы, наверное, видели их раньше.
Поскольку вы не можете доверять файлу перевода, содержащему безопасные значения, использование этих функций при выводе переводимой строки гарантирует, что выводимые строки не могут вызвать ту же проблему, описанную выше.
Используйте эти функции при выводе переводимых строк.