Comment désactiver les emojis dans WordPress

Depuis 2015 et la version 4.2 de WordPress, le support des emojis a été intégré dans notre CMS open source préféré. Cependant, tout le monde n’utilise pas les emojis, il peut donc être judicieux de les supprimer et d’améliorer un peu les performances du site en supprimant quelques requêtes.

Voyons comment vous pouvez le faire, avec ou sans plugin WordPress.

Désactiver les emojis dans WordPress avec une extension

Conçu par Ryan Hellyer, le plugin WordPress Disable Emojis est probablement le moyen le plus simple de supprimer les emojis natifs de WordPress de façon “propre”. Bien qu’il ne le garantisse pas, le plugin a été conçu avec la conformité GDPR à l’esprit en désactivant le prefetching de DNS des emojis dans WordPress.

Si vous ne souhaitez pas installer un plugin uniquement pour la suppression des emojis sur votre site WordPress, vous pouvez également le faire en utilisant un plugin de cache, qui vous offre cette fonctionnalité en plus des autres fonctionnalités du plugin. Par exemple, le plugin WP Fastest Cache vous permet de désactiver les emojis.

Désactiver les emojis WordPress sans utiliser d’extension

Pour désactiver les emojis WordPress sans plugin, vous devez éditer le fichier functions.php de votre theme. Vous pouvez le faire à partir de l’éditeur de fichiers intégré de WordPress, mais nous vous conseillons vivement de désactiver l’éditeur intégré pour des raisons de sécurité.

Dans le fichier functions.php, ajoutez le code suivant et enregistrez-le, puis vérifiez si les emojis ont disparu en consultant le code source de votre site web.

/*
  Supprimer toutes les actions et tous les filtres liés aux emoji
 */
function disable_wp_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_wp_emojis' );

/*
 Fonction de filtrage utilisée pour supprimer le plugin tinymce emoji
 */
function disable_emojis_tinymce( $plugins ) {
 if ( is_array( $plugins ) ) {
 return array_diff( $plugins, array( 'wpemoji' ) );
 } else {
 return array();
 }
}

/*
 Empêcher le prefetching DNS des 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;
}