WordPress includes built-in support for emojis, but if you don’t use them on your site, they can slow down your website by loading extra JavaScript and CSS files. To disable emojis in WordPress, you can add the following code snippet:
function wpsnippets_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', 'wpsnippets_disable_emojis_tinymce' );
add_filter( 'wp_resource_hints', 'wpsnippets_disable_emoji_dns_prefetch', 10, 2 );
}
function wpsnippets_disable_emojis_tinymce( $plugins ) {
if ( is_array( $plugins ) ) {
return array_diff( $plugins, array( 'wpemoji' ) );
} else {
return array();
}
}
function wpsnippets_disable_emoji_dns_prefetch( $urls, $relation_type ) {
if ( 'dns-prefetch' === $relation_type ) {
$emoji_url = apply_filters( 'emoji_svg_url', 'https://s.w.org/images/core/emoji/2/svg/' );
$urls = array_diff( $urls, array( $emoji_url ) );
}
return $urls;
}
add_action('init', 'wpsnippets_disable_emojis');
This code removes the actions and filters that add the emoji scripts and styles to your site. It also disables the emoji plugin in the TinyMCE editor used for post and page editing. The wpsnippets_disable_emojis_tinymce
function is used to remove the wpemoji
plugin from the list of TinyMCE plugins. The wpsnippets_disable_emoji_dns_prefetch
function is used to disable the DNS prefetch for the Emoji SVG url.
By disabling emojis, you can improve the performance of your WordPress site, especially on slower connections or devices. However, be aware that disabling emojis will also remove them from your content, comments, and post titles.