Désactiver les emojicons dans WordPress 4.2+

Depuis sa version 4.2, WordPress traite certains éléments automatiquement pour qu’ils soient remplacés par des émojis. C’est le cas de certaines entités HTML, dont on peut pourtant avoir besoin du comportement naturel.

Voici une série de filtres qui désactiveront toutes les surcouches émojis de WordPress, dans l’administration et sur le site. Toutes les lignes ne vous seront pas nécessaires si vous désactivez seulement le front ou le back-office.

add_action('init', 'kodex_disable_wp_emojicons');
function kodex_disable_wp_emojicons(){
	// actions pour styles & scripts
	remove_action('admin_print_styles', 'print_emoji_styles');
	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_filter('wp_mail', 'wp_staticize_emoji_for_email');
	remove_filter('the_content_feed', 'wp_staticize_emoji');
	remove_filter('comment_text_rss', 'wp_staticize_emoji');

	// filter pour l'éditeur TinyMCE
	add_filter('tiny_mce_plugins', 'kodex_disable_emojicons_tinymce');
}

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