Dezactivare emojicons introduse în WordPress 4.2

27 apr. 2015, 22:37:49
Vizualizări: 64.3K
Voturi: 147

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?

2
Comentarii

Am fost atât de șocat încât aproape că am leșinat pe scaun când am citit anunțul

Tom J Nowell Tom J Nowell
27 apr. 2015 23:33:57

o_O ... 9_9 ... >:-(

cjbj cjbj
10 oct. 2016 11:20:33
Toate răspunsurile la întrebare 7
9
204

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' );
27 apr. 2015 22:37:49
Comentarii

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

Howdy_McGee Howdy_McGee
27 apr. 2015 22:42:05

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

birgire birgire
27 apr. 2015 22:44:05

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

Pieter Goosen Pieter Goosen
27 apr. 2015 22:53:54

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

pcarvalho pcarvalho
28 apr. 2015 20:38:15

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 ~_~

phatskat phatskat
30 apr. 2015 00:47:19

Ș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...

Debajyoti Das Debajyoti Das
22 iul. 2015 15:39:01

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

thebigtine thebigtine
13 sept. 2016 12:51:57

@yobddigi Foarte bine, am actualizat în consecință!

Christine Cooper Christine Cooper
13 sept. 2016 13:37:08

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..." ... -_-

jave.web jave.web
12 apr. 2017 18:22:43
Arată celelalte 4 comentarii
2
29

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

29 apr. 2015 01:02:29
Comentarii

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!

Christine Cooper Christine Cooper
29 apr. 2015 04:00:05

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

Otto Otto
29 apr. 2015 16:07:18
3
15

Acesta este modul simplu de a elimina emoji-urile. Adaugă codul de mai jos în fișierul tău function.php

remove_action( 'wp_head', 'print_emoji_detection_script', 7 );
remove_action( 'wp_print_styles', 'print_emoji_styles' ); 
25 iun. 2015 00:48:49
Comentarii

Aceasta a fost deja acoperită în întrebarea mea anterioară.

Christine Cooper Christine Cooper
22 iul. 2015 15:38:31

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.

Steve Steve
21 iul. 2017 15:11:31

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

Christine Cooper Christine Cooper
19 aug. 2017 20:35:42
0

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.)

13 iun. 2017 17:48:00
3

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' );
10 iul. 2017 07:33:11
Comentarii

Ai testat corect codul din răspunsul meu?

Christine Cooper Christine Cooper
10 iul. 2017 10:44:26

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

johnhgaspay johnhgaspay
10 iul. 2017 11:23:26

Tocmai am verificat din nou codul meu și funcționează. Când adaugi codul în fișierul functions.php, încearcă să setezi o prioritate mai mare, astfel: add_action( 'init', 'disable_wp_emojicons', 3 );

Christine Cooper Christine Cooper
10 iul. 2017 12:22:48
2
-1

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.

7 oct. 2016 16:04:59
Comentarii

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

birgire birgire
7 oct. 2016 17:13:09

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 ;-)

birgire birgire
7 oct. 2016 17:23:04
0
-2

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

15 nov. 2016 16:17:59