Диагностика проблемы: зачем отключать Emoji в WordPress?
WordPress по умолчанию подключает скрипты и стили для поддержки Emoji в браузерах, которые их не поддерживают нативно. Эти ресурсы загружаются на каждую страницу сайта, что увеличивает количество HTTP-запросов и размер страницы, замедляя загрузку, особенно на мобильных устройствах и медленных сетях.
Для большинства сайтов поддержка Emoji не является критичной, поэтому рационально отключить их, чтобы улучшить время загрузки и уменьшить нагрузку на сервер.
Пошаговое решение: как отключить Emoji в WordPress через код
Самый надежный и легкий способ — добавить код в functions.php вашей активной темы или в кастомный плагин.
function disable_wp_emojicons() {
// Отключаем встроенный скрипт Emoji
remove_action('wp_head', 'print_emoji_detection_script', 7);
remove_action('admin_print_scripts', 'print_emoji_detection_script');
// Отключаем стили Emoji
remove_action('wp_print_styles', 'print_emoji_styles');
remove_action('admin_print_styles', 'print_emoji_styles');
// Отключаем фильтры, которые преобразуют смайлики в Emoji
remove_filter('the_content_feed', 'wp_staticize_emoji');
remove_filter('comment_text_rss', 'wp_staticize_emoji');
remove_filter('wp_mail', 'wp_staticize_emoji_for_email');
// Отключаем DNS prefetch для Emoji
add_filter('emoji_svg_url', '__return_false');
}
add_action('init', 'disable_wp_emojicons');Этот код удалит загрузку всех скриптов и стилей, связанных с Emoji, а также отключит фильтры, которые конвертируют текстовые смайлики в графические.
Альтернативный метод: отключение через плагин
Если вы предпочитаете не трогать код, можно использовать плагин Disable Emojis. Он делает то же самое, но без правок файлов. Минус — дополнительный плагин в системе.
Проверка результата после внедрения
Чтобы убедиться, что Emoji отключены, выполните следующие шаги:
- Откройте исходный код страницы сайта (Ctrl+U или Cmd+Option+U).
- Проверьте наличие строки с
print_emoji_detection_scriptилиwp-emoji-release.min.js. Их не должно быть. - В браузерной консоли (F12 > Network) обновите страницу и проверьте, что запросы к
wp-emoji-release.min.jsотсутствуют. - Проверьте визуально, что смайлики в комментариях или контенте отображаются как обычный текст или символы Unicode.
Частые ошибки и как исправить
- Код не сработал: Убедитесь, что вы добавили функцию именно в
functions.phpактивной темы или в плагин, и что нет синтаксических ошибок. - Emoji все еще загружаются: Возможно, тема или другой плагин принудительно подключают Emoji. Проверьте плагины на наличие подобных функций, временно отключите их для теста.
- Появились ошибки в админке: Проверьте правильность добавления хука
add_action('init', 'disable_wp_emojicons');и используйте функции только после загрузки ядра WordPress.
Практические советы по безопасности и производительности
- Отключение Emoji уменьшает нагрузку на сервер и сокращает время загрузки страниц, что положительно влияет на SEO и пользовательский опыт.
- Если используете CDN, очистите кеш после внесения изменений, чтобы обновления вступили в силу.
- Регулярно проверяйте консоль браузера на предмет ошибок JavaScript, так как отключение скриптов может влиять на другие скрипты, если они зависят от Emoji.
- Для более глубокой оптимизации рассмотрите отключение других неиспользуемых скриптов и стилей, например, Embeds или Dashicons.
Сравнение методов отключения Emoji
| Метод | Плюсы | Минусы | Рекомендации |
|---|---|---|---|
| Код в functions.php | Нет лишних плагинов, контроль над процессом, легкий и быстрый | Требует базовых знаний PHP, может потеряться при смене темы | Используйте кастомный плагин для постоянства |
| Плагин Disable Emojis | Просто, без кода, быстро | Дополнительный плагин, небольшая нагрузка | Подходит для новичков и быстрых решений |