Описание функции esc_html__()
Функция esc_html__() используется для экранирования строк, которые будут отображаться в HTML, и для их локализации. Она позволяет безопасно выводить строки на веб-странице, предотвращая XSS-атаки путем экранирования специальных символов. Эта функция рекомендуется для использования в шаблонах и плагинах при выводе текстов, которые могут содержать пользовательские данные.
Функция также поддерживает локализацию, что позволяет переводить строки на разные языки
Параметры
$text
Тип: string
Обязательный: Да
По умолчанию: »
Описание: Строка текста, которую нужно экранировать и локализировать
Возможные значения:
$domain
Тип: string
Обязательный: Нет
По умолчанию: ‘default’
Описание: Домен для локализации, по умолчанию ‘default’
Возможные значения:
Возвращаемое значение
Тип: string
Описание: Экранированная и локализованная строка
Возможные значения:
• Экранированная строка с замененными специальными символами
• Если строка не найдена, возвращается исходная строка
Примеры использования
Простой пример локализации и экранирования строки
$localized_string = esc_html__('Hello, World!');
// Вывод: Hello, World!
Локализация строки с указанием домена плагина
$localized_string = esc_html__('Hello, World!', 'my-plugin');
// Вывод: Hello, World!
Обработка пустой строки
$localized_string = esc_html__('');
// Вывод: (пустая строка)
Использование в шаблоне темы для безопасного вывода текста
echo esc_html__('Welcome to my site!');
// Вывод: Welcome to my site!
Безопасность
Валидация входных данных: Все входные параметры проходят валидацию внутри функции
Санитизация: Входные строки экранируются безопасным способом
Рекомендации: Используйте esc_html() для экранирования пользовательских данных перед выводом
— Связанные функции
Экранит строку для безопасного вывода в HTML
Локализует строку, но не экранирует ее
— Хуки
Фильтрует локализованные строки перед их выводом
— Примечания
– Ограничения
Не поддерживает сложные форматы строк с аргументами
– Частые проблемы
- Ошибки при отсутствии перевода для заданного домена
- Неверное экранирование, если строка уже экранирована