Dezactivare emojicons introduse în WordPress 4.2
WordPress 4.2 a introdus emoji-uri (emoticoane) care, în esență, adaugă JavaScript și alte elemente inutile pe toate paginile tale. Acest lucru poate fi surprinzător pentru unii utilizatori. Cum putem elimina complet toate instanțele acestora?

Vom folosi hook-ul init
și vom elimina acțiunile după cum urmează:
function disable_wp_emojicons() {
// toate acțiunile legate de emoji-uri
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' );
// filtru pentru a elimina emoji-urile din TinyMCE
add_filter( 'tiny_mce_plugins', 'disable_emojicons_tinymce' );
}
add_action( 'init', 'disable_wp_emojicons' );
Vom avea nevoie de următorul filtru pentru a dezactiva emoji-urile din TinyMCE:
function disable_emojicons_tinymce( $plugins ) {
if ( is_array( $plugins ) ) {
return array_diff( $plugins, array( 'wpemoji' ) );
} else {
return array();
}
}
Acum respirăm și ne prefacem că această funcționalitate nu a fost niciodată adăugată în nucleu... mai ales în timp ce o mulțime de bug-uri rezolvate sunt încă de implementat.
Această funcționalitate este disponibilă ca plugin, Disable Emojis.
Alternativ, puteți înlocui zâmbăretele cu versiunile originale din versiunile anterioare ale WordPress folosind Classic Smilies.
Actualizare
Putem elimina și prefetch-ul DNS returnând false pe filtrul emoji_svg_url
(mulțumiri @yobddigi):
add_filter( 'emoji_svg_url', '__return_false' );

Mulțumesc! Nu sunt sigur de ce nu au lăsat oamenii să activeze/dezactiveze această funcție prin Settings -> Writing
, dar este cu siguranță enervant. +1

Aștept cu nerăbdare plugin-ul tău "Disable emojicons" în repo sau pe github ;-)

Și nu uita să incluzi un link în răspunsul tău de unde putem descărca plugin-ul ;-)

există deja câteva (din care acesta este o copie) https://wordpress.org/plugins/classic-smilies/ https://wordpress.org/plugins/disable-emojis/

Mulțumesc pentru răspuns! Nu pot să cred că asta face parte din nucleu, cel puțin nu fără o opțiune de "opt-in" sau o modalitate de a-l dezactiva ~_~

Și este șocant să vezi că adaugă 114 de rânduri de scripturi și stiluri în header care nici măcar nu sunt minificate. Mulțumesc pentru plugin...

poate ar fi bine să adaugi și aceasta: add_filter( 'emoji_svg_url', '__return_false' );
aceasta elimină prefetch-ul DNS

WP ne lovește tare - începând cu versiunea 4.3 "opțiunea de a dezactiva smiley-urile grafice a fost eliminată din noile instalări" și smiley-urile nu sunt "emoji-uri"... Acum trebuie să a) add_filter( 'option_use_smilies', function(){ return false; } );
sau b) să folosești acest plugin (care face EXACT același lucru): https://wordpress.org/plugins/keep-emoticons-as-text/ Chiar mă întreb cine a decis "Da, hai să modificăm conținutul utilizatorilor prin PHP, fără să întrebăm pe nimeni..." ... -_-

Soluție mai bună dacă dorești să dezactivezi această funcționalitate: folosește un plugin.
Același cod ca în comentariile Christinei: https://wordpress.org/plugins/disable-emojis/
Același cod care repară și smile-urile pentru a fi cele vechi: https://wordpress.org/plugins/classic-smilies/
Sursă: Eu, deoarece am scris acel cod inițial. https://plugins.trac.wordpress.org/changeset/1142480/classic-smilies

Super! Deși am dat peste funcții printr-o intrare pe github. Am actualizat răspunsul meu cu aceste link-uri de plugin. Mulțumesc!

Da, probabil ai făcut-o. L-am pus și pe github pentru un utilizator de twitter: https://gist.github.com/Otto42/b79ff5428993fcff45bb

Mulțumesc, acest cod elimină frumos - ciudat că paginile mele îmi iau cu 2-3 secunde mai mult să se încarce cu acest cod în functions.php decât fără el.

Acest cod ar trebui să ruleze prin init
. Vezi răspunsul meu.

Dacă dorești să previi WordPress să convertească automat vechile smiley-uri ASCII în emoji-uri Unicode (cum ar fi ;-)
în ) în articolele tale, poți folosi
remove_filter('the_content', 'convert_smilies')
(Nu sunt 100% sigur că aceasta este întrebarea, dar această soluție mi-a rezolvat problema și sper să fie utilă și pentru alții.)

Am încercat câteva coduri de mai sus, dar singurul cod care funcționează la mine este acesta.
Nu uitați să faceți o copie de rezervă a fișierului functions.php înainte de a implementa aceste coduri.
// ELIMINĂ EMOJI DIN WP
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' );

da, l-am încercat de mai multe ori, site-ul rulează pe server cloudflare-nginx

Veste bună, am adăugat o cerere de funcționalitate:
Introducerea unei noi opțiuni în WordPress WP_EMOICONS aici https://core.trac.wordpress.org/ticket/38252
și se pare că aceasta a fost marcată ca duplicat https://core.trac.wordpress.org/ticket/32102 așa că putem aștepta ceva de genul
define( 'WP_EMOICONS', false );
în viitoarele versiuni de WordPress.

Se pare că tichetul #32102 este închis cu wontfix. +1 pentru încercare și optimism ;-)

ps: din câte am înțeles, tichetul tău #38252 a fost închis pentru că era un duplicat al tichetului #32102, care fusese deja închis ca wontfix. Așa că se pare că plugin-urile vor trebui să rezolve asta în continuare ;-) De aceea ți-am dat vot pozitiv pentru optimismul tău ;-)

Deoarece emoji-urile WordPress sunt servite de la s.w.org și nu sunt comprimate, acest lucru afectează timpul de încărcare a SVG-urilor în funcție de câte emoji utilizați și poate chiar genera avertismente în instrumentul Google PageSpeed Insights.
Pentru a remedia această problemă, puteți servi emoji-urile direct de pe site-ul dvs. WordPress fără a face apeluri externe prin js.
Aceasta poate fi realizată prin instalarea plugin-ului Compressed Emoji care este disponibil gratuit în depozitul de plugin-uri WordPress.org.
Când plugin-ul este activat, compresia oferă economii în intervalul de 3kb ~ 1.3kb (aproximativ 60%) per emoji.
Sursa: WPTavern
