Почему HTML не работает в названии WordPress
Узнайте причины, почему HTML-теги больше не отображаются в полях названия и описания WordPress, и как восстановить функциональность после обновлений.
Почему HTML-теги не работают в полях «Название сайта» и «Краткое описание» в WordPress?
Раньше я мог использовать HTML-теги (например, «) в полях «Название сайта» и «Краткое описание» WordPress, и они корректно отображались. Однако сейчас HTML-код в этих полях отображается как текст вместо форматирования.
Пример проблемы:
- Работало раньше: «Название сайта» отображалось как «Название сайта»
- Сейчас: «Название сайта» отображается как «Название сайта»
Связано ли это с обновлениями WordPress? Как вернуть возможность использования HTML в этих полях?
WordPress изменил подход к обработке HTML в полях «Название сайта» и «Краткое описание» из соображений безопасности и соответствия современным стандартам. Раньше HTML-теги в этих полях не экранировались, но теперь WordPress автоматически экранирует HTML-код, чтобы предотвратить XSS-атаки и другие уязвимости безопасности. Это изменение было реализовано в последних версиях WordPress, особенно заметное в обновлениях 2023-2025 годов.
Содержание
- Основные причины проблемы
- Связь с обновлениями WordPress
- Способы решения проблемы
- Проверка конфликтов плагинов
- Тематические решения
- Альтернативные подходы
Основные причины проблемы
Основная причина, по которой HTML-теги теперь отображаются как текст, заключается в усовершенствовании системы экранирования HTML в WordPress. В последних версиях WordPress реализовано более строгое экранирование для полей сайта и теглайн, что является мерой безопасности.
Важно: WordPress теперь автоматически экранирует все HTML-теги в полях «Название сайта» и «Краткое описание» для предотвращения XSS-атак и других уязвимостей безопасности.
Это означает, что теги вроде <span class="nebeda">«</span> преобразуются в их HTML-сущности (<span class="nebeda">«</span>) и отображаются как текст, а не как форматированный HTML.
Связь с обновлениями WordPress
Да, это напрямую связано с обновлениями WordPress. В последних версиях (особенно в 2023-2025 годах) были внесены значительные изменения в обработку HTML:
-
Улучшенная экранирование: WordPress внедрил более строгие меры экранирования для всех пользовательских вводов, включая поля сайта и теглайн.
-
Изменения в ядре: Как упоминается в документации WordPress, были исправлены проблемы с экранированием и стилем кода.
-
Безопасность превыше всего: Эти изменения были сделаны с целью повышения безопасности сайтов, работающих на WordPress.
-
Совместимость с современными стандартами: Новые подходы соответствуют современным веб-стандартам и рекомендациям безопасности.
Проверка конфликтов плагинов
Один из частых причин проблемы является конфликт с плагинами. Как показано в исследованиях, некоторые плагины могут interfere с правильной обработкой HTML в полях сайта:
- SEO-плагины: Многие SEO-плагины имеют собственные правила обработки тегов заголовков.
- Плагины перевода: WPML String Translation и подобные плагины могут хранить отформатированный текст в виде строки.
- Кастомные плагины: Некоторые плагины могут переопределять стандартную работу WordPress с HTML.
Как проверить:
- Отключите все плагины по очереди
- Проверьте, появилась ли возможность использовать HTML
- Если проблема исчезла, включайте плагины по одному, чтобы найти конфликтующий
Способы решения проблемы
1. Использование Quick Edit или Классического редактора
Как упоминается в официальной поддержке WordPress, есть обходной путь:
Используйте либо Quick Edit, либо Классический редактор (включается через плагин), чтобы изменить любые
<, отображаемые как HTML-сущности, на реальный символ<, затем обновите.
2. Модификация functions.php дочерней темы
Вы можете добавить код в файл functions.php дочерней темы, чтобы разрешить HTML в теглайне:
// Разрешить HTML в теглайне
remove_filter('option_blogdescription', 'esc_html');
add_filter('option_blogdescription', 'wp_kses_post');
3. Прямое редактирование базы данных
Для опытных пользователей можно напрямую отредактировать таблицу wp_options в базе данных:
- Найдите опцию
blogname(для названия сайта) иblogdescription(для теглайна) - Измените значение, удалив экранирование HTML
- Внимание: Этот метод требует осторожности и резервного копирования
Тематические решения
Некоторые темы имеют собственные настройки отображения теглайна:
- Настройки темы: Проверьте раздел настроек вашей темы, возможно, есть опция отображения теглайна.
- Глобальные настройки: В некоторых темах можно добавить теглайн через специальные хуки.
- Шаблонные теги: Как упоминается в форуме GeneratePress, можно использовать хуки темы для добавления форматированного текста.
Альтернативные подходы
1. Использование визуальных редакторов
Если вам нужно добавить форматирование в заголовок сайта, рассмотрите:
- Создание кастомного шрифта с нужными символами
- Использование CSS для стилизации через псевдоэлементы
- Добавление иконок через ::before или ::after
2. Плагины для работы с HTML
Существуют плагины, которые позволяют безопасно работать с HTML в различных частях WordPress:
- Allow HTML in Title: Плагин, специально созданный для разрешения HTML в заголовках
- Raw HTML: Позволяет добавлять неэкранированный HTML в определенные области
- Custom HTML: Плагины для добавления кастомного HTML в заголовки
3. Кастомная разметка через PHP
Для продвинутых пользователей можно создать кастомную разметку через PHP:
function custom_site_title($title) {
return str_replace('<', '<', $title);
}
add_filter('bloginfo', 'custom_site_title', 10, 2);
Заключение
Проблема с HTML-тегами в полях «Название сайта» и «Краткое описание» WordPress связана с обновлениями системы, направленными на повышение безопасности. Вот основные выводы:
- Безопасность превыше всего: WordPress теперь экранирует HTML во всех пользовательских полях для предотвращения XSS-атак
- Проверьте плагины: Часто проблема вызвана конфликтами с SEO-плагинами или плагинами перевода
- Есть решения: Используйте Quick Edit, модифицируйте functions.php или используйте специальные плагины
- Альтернативы: Рассмотрите CSS-стилизацию или кастомные шрифты вместо HTML-тегов
Для большинства пользователей наиболее простым решением будет использование Quick Edit или установка плагина, разрешающего HTML в заголовках. Если вы регулярно работаете с форматированным текстом в этих полях, рекомендуется создать дочернюю тему с соответствующими модификациями functions.php.
Источники
- Issue with Tag in Titles Being Escaped | WordPress.org Support
- HTML tags in site title – GeneratePress Forums
- Cannot update WordPress General Settings Site Title and Tagline | WordPress Stack Exchange
- Twenty Fourteen changelog | WordPress Documentation
- Display Site Title and Tagline checkbox not working? | WordPress Stack Exchange
- WordPress Tagline Help | Reddit r/ProWordPress
- Tag line not displayed | WordPress.org Support
- What’s new for developers? (September 2024) | WordPress Developer Blog