Or, embed this snippet using GenerateWP WordPress Plugin.

Download

Clone

WordPress Emojis deaktivieren

Kein Schwein benutzt sie wirklich, kein Mensch auf dieser Welt braucht sie wirklich und dennoch gehören die Emojis seit WordPress 4.2 zum Core von WordPress. Das Wiederum ist ein Problem für mich, weil sie von Haus aus nicht deaktivierbar sind und somit auch direkten Einfluss auf die Performance von WordPress haben. Würde irgendwer die Emojis wirklich haben wollen, wäre das okay und ich könnte damit leben, aber es ist einfach eine überflüssige Spielerei mit über 100 Zeilen zusätzlichem Code. Seit WordPress 4.2 wird nämlich fleißig das wp-emoji-release.min.js in den Header eingebunden und zwar vollautomatisch und ohne die Möglichkeit das ganze zu deaktivieren. Naja, eine Möglichkeit gibt es schon, nur eben keine offizielle Option zum abschalten.

Das Snippet entfernt nun simpel und direkt den kompletten Emoji-Support von WordPress. Zum einen wird nicht mehr automatisch die wp-emoji-release.min.js in den Head eurer Seite integriert, zum anderen auch kein zusätzliches Inline CSS. Im Backend wird außerdem TinyMCE bereinigt, auch das Emoji Plugin für den Editor wird also komplett deaktiviert. Warum ich dafür nun wieder extra Code hinzufügen muss, ist mir nach wie vor schleierhaft, denn nach meinem Ermessen sind Emojis nichts was zwingend in den Core eines CMS gehört. Purer Überfluss also, totaler Schwachsinn und absoluter Mist. Sorry, aber das musste einfach mal so direkt gesagt werden, denn WordPress hat wahrlich andere Probleme, um die sich gekümmert werden sollte. Stattdessen kommt eine Emoji-Unterstützung die niemand will, die sich automatisch aufzwingt und die schlussendlich auch die Performance eures WordPress Blogs verschlechtert. Wer Emojis nicht nutzt, sollte also auch den Support dafür deaktivieren. Den Head von WordPress zu bereinigen, gehört aber eh zum Pflichtprogramm.

Plugin Alternative: Disable Emojis: https://wordpress.org/support/plugin/disable-emojis

Wer sich mit WordPress nicht ganz so gut auskennt, oder wer schlichtweg lieber ein Plugin installiert, als ein wenig Code hinzuzufügen, der sollte zum WordPress Plugin Disable Emojis greifen. Das deaktiviert die Emojis in WordPress ganz regulär und genau wie das Snippet oben. Eine der beiden Möglichkeiten solltet ihr auf jedenfalls einsetzten, denn wer Emojis nicht nutzt, braucht auch nicht deren Ballast im Head der Seite.

/**
 * Disable the emoji's
 */
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' );

/**
 * Filter function used to remove the tinymce emoji plugin.
 * 
 * @param array $plugins 
 * @return array Difference betwen the two arrays
 */
function disable_emojis_tinymce( $plugins ) {
 if ( is_array( $plugins ) ) {
 return array_diff( $plugins, array( 'wpemoji' ) );
 } else {
 return array();
 }
}

/**
 * Remove emoji CDN hostname from DNS prefetching hints.
 *
 * @param array $urls URLs to print for resource hints.
 * @param string $relation_type The relation type the URLs are printed for.
 * @return array Difference betwen the two arrays.
 */
function disable_emojis_remove_dns_prefetch( $urls, $relation_type ) {
 if ( 'dns-prefetch' == $relation_type ) {
 /** This filter is documented in wp-includes/formatting.php */
 $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;
}