Deaktivieren Sie die mit WP 4.2 eingeführten Emojicons

135

Deshalb hat WP 4.2 Emojis (Smileys) eingeführt, die im Grunde genommen JS und anderen Junk auf allen Ihren Seiten hinzufügen. Einige Leute mögen das schockierend finden. Wie löscht man alle Instanzen davon vollständig?

Christine Cooper
quelle
39
Ich war so schockiert, dass ich fast in meinem Stuhl zusammengebrochen wäre, als ich die Ankündigung las
Tom J Nowell
2
o_O ... 9_9 ...>: - (
cjbj

Antworten:

193

Wir werden initdie folgenden Aktionen einbinden und entfernen:

function disable_wp_emojicons() {

  // all actions related to emojis
  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 to remove TinyMCE emojis
  add_filter( 'tiny_mce_plugins', 'disable_emojicons_tinymce' );
}
add_action( 'init', 'disable_wp_emojicons' );

Wir benötigen die folgende Filterfunktion, um TinyMCE-Emojicons zu deaktivieren:

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

Jetzt atmen wir ein und tun so, als ob diese Funktion nie zum Kern hinzugefügt worden wäre ... insbesondere, während Tonnen von behobenen Fehlern noch implementiert werden müssen.

Dies ist als Plugin verfügbar, Emojis deaktivieren .

Alternativ können Sie die Smilies mithilfe von Classic Smilies durch die Originalversionen aus früheren Versionen von WordPress ersetzen .

Aktualisieren

Wir können den DNS-Prefetch auch entfernen, indem wir false on filter zurückgeben emoji_svg_url(danke @yobddigi):

add_filter( 'emoji_svg_url', '__return_false' );
Christine Cooper
quelle
25
Vielen Dank! Ich bin mir nicht sicher, warum sie es nicht nur Leuten erlaubt haben, dies zu aktivieren / deaktivieren, Settings -> Writingaber es ist definitiv ärgerlich. +1
Howdy_McGee
6
Freuen Sie sich auf Ihr Plugin "Emojicons deaktivieren" im Repo oder Github ;-)
Birgire
3
Es gibt bereits einige von ihnen (dies ist eine Kopie) wordpress.org/plugins/classic-smilies wordpress.org/plugins/disable-emojis
pcarvalho
3
Danke für die Antwort! Ich kann nicht glauben, dass dies Teil des Kerns ist, zumindest nicht mit einem "Opt-In" oder einer Möglichkeit, es zu deaktivieren ~ _ ~
Phatskat
5
Und es ist schockierend zu sehen, dass sie dem Header 114 Zeilen hinzufügen, die Skripte und Stile wert sind, die nicht einmal minimiert sind. Danke für das Plugin ...
Debajyoti Das
28

Bessere Lösung, wenn Sie dies deaktivieren möchten: Verwenden Sie ein Plugin.

Gleicher Code wie aus Christines Kommentaren: https://wordpress.org/plugins/disable-emojis/

Derselbe Code, der auch die Smilies als die älteren behebt: https://wordpress.org/plugins/classic-smilies/

Quelle: Ich, seit ich diesen Code geschrieben habe. https://plugins.trac.wordpress.org/changeset/1142480/classic-smilies

Otto
quelle
Nett! Obwohl ich über einen Github-Eintrag auf die Funktionen gestoßen bin. Ich habe meine Antwort mit diesen Plugin-Links aktualisiert. Vielen Dank!
Christine Cooper
Ja, das hast du wahrscheinlich getan. Ich habe es auch für einen Twitter-Nutzer auf github gestellt: gist.github.com/Otto42/b79ff5428993fcff45bb
Otto
14

Dies ist der einfache Weg, um Emoji zu entfernen. Fügen Sie den folgenden Code zu Ihrem hinzufunction.php

remove_action( 'wp_head', 'print_emoji_detection_script', 7 );
remove_action( 'wp_print_styles', 'print_emoji_styles' ); 
Ausschlüsse
quelle
2
Dies wurde bereits in meiner Frage oben behandelt.
Christine Cooper
Dank dessen wird der Code schön entfernt - seltsamerweise brauchen meine Seiten 2 bis 3 Sekunden länger, um damit in meine functions.php zu laden, als ohne.
Steve
Dies sollte über laufen init. Siehe meine Antwort .
Christine Cooper
2

Wenn Sie verhindern möchten, dass Wordpress Ihre alten ASCII-Smilies in Ihren Posts automatisch in Unicode-Emojis (wie ;-)in 😉) umwandelt , möchten Sie dies möglicherweise tunremove_filter('the_content', 'convert_smilies')

(Nicht 100% sicher, worum es in der Frage geht, aber dies hat mein Problem gelöst und ich hoffe, es ist für jemanden nützlich.)

Christallkeks
quelle
0

Ich habe einige Codes oben ausprobiert, aber der einzige Code, der auf meiner Seite funktioniert, ist dieser.

Vergessen Sie nicht, Ihre functions.php zu sichern, bevor Sie diese Codes implementieren.

// REMOVE WP EMOJI
remove_action('wp_head', 'print_emoji_detection_script', 7);
remove_action('wp_print_styles', 'print_emoji_styles');

remove_action( 'admin_print_scripts', 'print_emoji_detection_script' );
remove_action( 'admin_print_styles', 'print_emoji_styles' );
johnhgaspay
quelle
Haben Sie den Code in meiner Antwort richtig getestet?
Christine Cooper
ja , ich habe es viele Male versucht, Website ist auf cloudflare-nginx Server
johnhgaspay
Überprüfe einfach meinen Code und es funktioniert. Wenn Sie den Code in Ihre functions.php-Datei einfügen, versuchen Sie, eine höhere Priorität festzulegen:add_action( 'init', 'disable_wp_emojicons', 3 );
Christine Cooper
-1

Gute Nachrichten, ich habe eine Feature-Anfrage hinzugefügt:

Führen Sie eine neue Option zu Wordpress WP_EMOICONS hier https://core.trac.wordpress.org/ticket/38252

und anscheinend wurde dies als Duplikat https://core.trac.wordpress.org/ticket/32102 markiert, daher können wir so etwas erwarten

define( 'WP_EMOICONS', false );

in den zukünftigen WordPress-Versionen.

prosti
quelle
1
Es sieht so aus, als ob Ticket # 32102 mit wontfix geschlossen ist . +1 für versuchen und optimistisch zu sein ;-)
Birgire
2
PS: Soweit ich weiß, wurde Ihr Ticket # 38252 geschlossen, da es ein Duplikat von Ticket # 32102 war, das zuvor als Wontfix geschlossen wurde. Es sieht also so aus, als
müssten
-2

Da WordPress-Emoji von sworg bereitgestellt und nicht komprimiert werden, wirkt sich dies auf die SVG-Ladezeit aus, je nachdem, wie viele Emoji Sie verwenden, und es können sogar Warnungen auf das PageSpeed ​​Insights-Tool von Google ausgegeben werden.

Um dieses Problem zu beheben, können Sie das Emoji direkt von Ihrer WordPress-Site aus bereitstellen und nicht durch externe Anrufe über js.

Dies kann durch die Installation des Plugins Compressed Emoji erreicht werden, das kostenlos im WordPress.org-Plugin-Repository verfügbar ist.

Wenn das Plugin aktiviert ist, bietet die Komprimierung Einsparungen im Bereich von 3 KB bis 1,3 KB (ungefähr 60%) pro Emoji.

Quelle: WPTavern

Antony Agnel
quelle