Как отключить Emoji в WordPress: эффективные методы и примеры кода

Emoji — это маленькие иконки, которые WordPress автоматически добавляет для поддержки смайликов на сайте. Хотя это удобно, для многих проектов Emoji создают лишние HTTP-запросы и замедляют загрузку страниц, особенно когда они не нужны. В этой статье разберём, как грамотно отключить Emoji в WordPress, чтобы оптимизировать производительность сайта.

Почему стоит отключать Emoji в WordPress

По умолчанию WordPress добавляет скрипт и стили для Emoji, которые загружаются на фронтенд и в админку. Это приводит к нескольким недостаткам:

  • Дополнительные HTTP-запросы на загрузку JavaScript и CSS.
  • Увеличение размера страницы и времени отклика.
  • Потенциальные конфликты с другими скриптами и плагинами.

Если ваш сайт не использует Emoji или вы не хотите их отображать, имеет смысл полностью отключить эту функциональность.

Отключение Emoji через functions.php: простой и надёжный способ

Самый распространённый способ — добавить код в файл functions.php вашей темы или в плагин для кастомных функций. Ниже приведён пример функции wpsetup_disable_emojis, которая отключит Emoji во всех местах:

function wpsetup_disable_emojis() {
    remove_action('wp_head', 'print_emoji_detection_script', 7);
    remove_action('admin_print_scripts', 'print_emoji_detection_script');
    remove_action('wp_print_styles', 'print_emoji_styles');
    remove_action('admin_print_styles', 'print_emoji_styles');
    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');
    add_filter('tiny_mce_plugins', 'wpsetup_disable_emojis_tinymce');
    add_filter('wp_resource_hints', 'wpsetup_disable_emojis_remove_dns_prefetch', 10, 2);
}
add_action('init', 'wpsetup_disable_emojis');

function wpsetup_disable_emojis_tinymce($plugins) {
    if (is_array($plugins)) {
        return array_diff($plugins, array('wpemoji'));
    }
    return array();
}

function wpsetup_disable_emojis_remove_dns_prefetch($urls, $relation_type) {
    if ('dns-prefetch' === $relation_type) {
        $emoji_svg_url = 'https://s.w.org/images/core/emoji/';
        foreach ($urls as $key => $url) {
            if (strpos($url, $emoji_svg_url) !== false) {
                unset($urls[$key]);
            }
        }
    }
    return $urls;
}

Этот код полностью отключит загрузку скриптов и стилей Emoji, уберёт поддержку в визуальном редакторе TinyMCE и удалит DNS-prefetch для emoji-серверов.

Отключение Emoji с помощью плагинов

Если вы предпочитаете не трогать код, можно использовать готовые плагины. Вот несколько популярных решений:

  • Disable Emojis (GDPR friendly) — простой и лёгкий плагин, который отключает Emoji и не нагружает сайт.
  • Clearfy Pro

Для установки плагина зайдите в админку WordPress, выберите Плагины > Добавить новый, найдите плагин по названию и нажмите «Установить» и «Активировать».

Дополнительные советы по оптимизации после отключения Emoji

После отключения Emoji рекомендуется проверить скорость сайта, чтобы убедиться в улучшении. Можно использовать сервисы:

  • Google PageSpeed Insights
  • GTmetrix
  • Pingdom

Если вы хотите пойти дальше, рекомендую настроить кэширование и минимизацию скриптов, например, с помощью плагина Clearfy Pro, который также позволяет отключать неиспользуемые функции WordPress.

Пример: отключение Emojis и других ненужных скриптов

Вы можете расширить нашу функцию для отключения и других скриптов, например, Embeds:

function wpsetup_disable_emojis_and_embeds() {
    // Отключаем Emoji
    wpsetup_disable_emojis();
    
    // Отключаем Embeds
    remove_action('wp_head', 'wp_oembed_add_discovery_links');
    remove_action('wp_head', 'wp_oembed_add_host_js');
    add_filter('embed_oembed_discover', '__return_false');
    remove_filter('oembed_dataparse', 'wp_filter_oembed_result', 10);
    remove_action('rest_api_init', 'wp_oembed_register_route');
    add_filter('rest_enabled', '__return_false');
    add_filter('rest_jsonp_enabled', '__return_false');
    
    // Удаляем поддержку oEmbed в TinyMCE
    add_filter('tiny_mce_plugins', function($plugins) {
        return array_diff($plugins, array('wpembed'));
    });
}
add_action('init', 'wpsetup_disable_emojis_and_embeds');

Это позволит ещё больше снизить нагрузку от неиспользуемых функций.

Как создать собственный шорткод в WordPress
01.11.2025
Использование WooCommerce REST API для управления заказами
09.04.2026
Как создать автоматическое резервное копирование WordPress с помощью плагинов и собственного кода
28.11.2025
Запрет доступа к WooCommerce REST API для неавторизованных пользователей
11.01.2026
Как добавить поле в форму регистрации WordPress
04.12.2025