esc_html_e()
— это функция в WordPress, используемая для перевода строк и их безопасного отображения непосредственно в HTML-коде. Она объединяет функционал перевода строки (с помощью функции __()
) и экранирования HTML-символов (через функцию esc_html()
) и сразу выводит результат. Это помогает предотвратить XSS-атаки, обеспечивая безопасное отображение переведенных строк.
Синтаксис
esc_html_e( $text, $domain )
- $text (string): Текст, который нужно перевести и экранировать.
- $domain (string): Текстовый домен для перевода. Обычно соответствует имени вашего плагина или темы.
Зачем использовать esc_html_e()
?
- Безопасность: Предотвращает XSS-атаки, экранируя HTML-специфические символы.
- Локализация: Обеспечивает легкий перевод текста, что важно для создания многоязычных сайтов.
- Удобство: Функция сразу выводит переведенный и экранированный текст, что сокращает код и делает его более читаемым.
Примеры использования
Отображение заголовка
Предположим, у вас есть тема или плагин, и вы хотите отобразить заголовок, который можно перевести на другие языки.
<h1><?php esc_html_e( 'Welcome to my website', 'my-text-domain' ); ?></h1>
В этом примере строка «Welcome to my website» будет переведена на текущий язык сайта, если соответствующий перевод доступен, и безопасно выведена на экран.
Использование внутри функции
Функция esc_html_e()
также может использоваться внутри других PHP-функций для генерации переведенных и экранированных строк.
function display_custom_message() {
esc_html_e( 'This is a custom message.', 'my-text-domain' );
}
display_custom_message();
В этом примере функция display_custom_message()
выводит безопасно переведенное сообщение.
Как добавить переводы
Чтобы строки, передаваемые в esc_html_e()
, можно было перевести, нужно создать файл перевода (например, .po
и .mo
файлы) для вашего текстового домена. Эти файлы обычно располагаются в папке languages
вашего плагина или темы.
Пример создания файла перевода
- Создайте PO-файл: Используйте инструмент, например, Poedit для создания файла перевода.
- Заполните переводы: Введите переводы для всех строк, использующих
esc_html_e()
. - Сохраните MO-файл: Poedit автоматически сгенерирует MO-файл, который будет использоваться WordPress для перевода.
Заключение
Функция esc_html_e()
является важным инструментом для разработчиков WordPress, позволяя одновременно обеспечить безопасность и многоязычность сайтов. Использование этой функции помогает избежать XSS-атак, экранируя HTML-символы, и упрощает процесс локализации контента.