28.04.2020

Wordpress Оптимизация. Отключение Emoji

Начиная с Wordpress 4.2 в ядро добавленная поддержка Emoji для всех браузеров. Это введение основано на расширении кодировки UTF-8. Необходимость использования смайликов для большинства сайтов основанных на Wordpress отсутствует, к тому же это создает дополнительную нагрузку при открытии сайта.

Обработчик Emoji загружается при открытии любой страницы сайта и занимает не более 40 Кб трафика, также подключаются дополнительные стили css. Ни смотря на столь малый объем это создает дополнительную задержку при открытии страниц.

Отключить поддержку Emoji можно двумя способами с помощь плагина и добавления кода в файл функции темы.

1. Отключение Emoji при помощи плагина.

Данный способ самый простой и не требует изменение программного кода.

Для управлением Emoji устанавливаем и активируем плагин Disable Emojis (GDPR friendly) от автора Ryan Hellyer, страница плагина https://wordpress.org/plugins/disable-emojis/

Emoji будут отключены сразу же после активации плагина.

2. Отключение при помощи добавление кода.

Для этого открываем файл с функциями темы и добавляем следующий код.

/*

* Отключение emoje

*/


function 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', 'disable_emojis_tinymce' );

add_filter( 'wp_resource_hints', 'disable_emojis_remove_dns_prefetch', 10, 2 );

}

add_action( 'init', 'disable_emojis' );


/**

* Отключаем в визуальном редакторе

*/

function disable_emojis_tinymce( $plugins ) {

if ( is_array( $plugins ) ) {

return array_diff( $plugins, array( 'wpemoji' ) );

} else {

return array();

}

}


/**

* Удаляем подключение ресурсов для загрузки emoji

*

*/

function disable_emojis_remove_dns_prefetch( $urls, $relation_type ) {

if ( 'dns-prefetch' == $relation_type ) {

$emoji_svg_url = apply_filters( 'emoji_svg_url', 'https://s.w.org/images/core/emoji/2/svg/' );


$urls = array_diff( $urls, array( $emoji_svg_url ) );

}


return $urls;

}

Данный код является собирательным из нескольких источников.

Разницы в производительности сайта в зависимости от способа отключения emoji я не заметил, исходя из этого рекомендую использовать плагин Disable Emojis

Использованные материалы:

https://kinsta.com/knowledgebase/disable-emojis-wordpress/

https://ru.wordpress.org/support/topic/%D1%83%D0%B1%D1%80%D0%B0%D1%82%D1%8C-wp-emoji/

Комментариев нет:

Отправить комментарий