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