Disabilita le emoji introdotte con WP 4.2


135

Quindi WP 4.2 ha introdotto emoji (emoticon) che fondamentalmente aggiungono JS e altra spazzatura su tutte le tue pagine. Qualcosa che alcune persone potrebbero trovare scioccanti. Come si cancellano completamente tutte le istanze di questo?


39
Ero così scioccato che sono quasi crollato sulla sedia quando ho letto l'annuncio
Tom J Nowell

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

Risposte:


193

Agganceremo inite rimuoveremo le azioni come segue:

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

Avremo bisogno della seguente funzione di filtro per disabilitare le emoji TinyMCE:

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

Ora respiriamo e facciamo finta che questa funzionalità non sia mai stata aggiunta al core ... in particolare mentre tonnellate di bug risolti devono ancora essere implementati.

Questo è disponibile come plug-in, Disabilita Emoji .

In alternativa, puoi sostituire le faccine con le versioni originali delle versioni precedenti di WordPress usando le faccine classiche .

Aggiornare

Possiamo anche rimuovere il prefetch DNS restituendo false sul filtro emoji_svg_url(grazie @yobddigi):

add_filter( 'emoji_svg_url', '__return_false' );

25
Grazie! Non sono sicuro del motivo per cui non hanno solo permesso alle persone di abilitare / disabilitare questo tramite, Settings -> Writingma è decisamente fastidioso. +1
Howdy_McGee

6
Attendo con ansia il tuo plug-in "Disabilita emoji" nel repository o in github ;-)
birgire,

3
ce ne sono già un paio (che questa è una copia) wordpress.org/plugins/classic-smilies wordpress.org/plugins/disable-emojis
pcarvalho

3
Grazie per la risposta! Non riesco a credere che questo sia parte del core, almeno non con un "opt-in" o un modo per disabilitarlo ~ _ ~
phatskat

5
Ed è scioccante vedere che nell'intestazione aggiungono 114 righe degne di script e stili che non sono nemmeno minimizzati. Grazie per il plugin ...
Debajyoti Das

28

Soluzione migliore se si desidera disabilitare questo: utilizzare un plug-in.

Stesso codice dei commenti di Christine: https://wordpress.org/plugins/disable-emojis/

Lo stesso codice che fissa anche le faccine come quelle più vecchie: https://wordpress.org/plugins/classic-smilies/

Fonte: io, da quando ho scritto quel codice in primo luogo. https://plugins.trac.wordpress.org/changeset/1142480/classic-smilies


Bello! Anche se mi sono imbattuto nelle funzioni tramite una voce github. Ho aggiornato la mia risposta con questi collegamenti a plugin. Grazie!
Christine Cooper

Sì, probabilmente l'hai fatto. L'ho messo anche su github per un utente di twitter: gist.github.com/Otto42/b79ff5428993fcff45bb
Otto

14

Questo è il modo semplice per rimuovere le emoji. Aggiungi il seguente codice al tuofunction.php

remove_action( 'wp_head', 'print_emoji_detection_script', 7 );
remove_action( 'wp_print_styles', 'print_emoji_styles' ); 

2
Questo era già stato trattato nella mia domanda sopra.
Christine Cooper

Grazie questo rimuove bene il codice - stranamente le mie pagine impiegano dai 2 ai 3 secondi in più per caricarsi con questo nella mia funzione.php che senza.
Steve

Questo dovrebbe funzionare tramite init. Vedere la mia risposta .
Christine Cooper

2

Se si desidera impedire Wordpress da convertire automaticamente le faccine vecchia scuola ASCII a Unicode emoji (come ;-)a 😉) nei tuoi messaggi del tutto, si potrebbe desiderare diremove_filter('the_content', 'convert_smilies')

(Non sono sicuro al 100% di che cosa si tratti, ma questo ha risolto il mio problema e spero che possa essere utile per qualcuno.)


0

Ho provato alcuni codici sopra, ma l'unico codice funziona dalla mia parte è questo.

Non dimenticare di eseguire il backup delle funzioni.php prima di implementare questi codici.

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

Hai testato correttamente il codice nella mia risposta?
Christine Cooper

si l'ho provato molte volte, il sito è sul server cloudflare-nginx
johnhgaspay

Ho appena ricontrollato il mio codice e funziona. Quando aggiungi il codice nel tuo file Functions.php, prova a impostare una priorità più alta, in questo modo:add_action( 'init', 'disable_wp_emojicons', 3 );
Christine Cooper

-1

Buone notizie, ho aggiunto una richiesta di funzionalità:

Introdurre una nuova opzione per WordPress WP_EMOICONS qui https://core.trac.wordpress.org/ticket/38252

e apparentemente questo è stato contrassegnato come duplicato https://core.trac.wordpress.org/ticket/32102 quindi possiamo aspettarci qualcosa di simile

define( 'WP_EMOICONS', false );

nelle future versioni di WordPress.


1
Sembra che il biglietto # 32102 sia chiuso con wontfix . +1 per provare a essere ottimista ;-)
birgire,

2
ps: per quanto ho capito, il tuo biglietto n. 38252 è stato chiuso perché era un duplicato del biglietto n. 32102, che in precedenza era stato chiuso come wontfix. Quindi sembra che i plug-in dovranno risolvere questo problema, per i giorni a venire ;-) Quindi
votalo

-2

Poiché le emoji di WordPress vengono fornite da Sworg e non sono compresse, ciò influisce sul tempo di caricamento di SVG in base al numero di emoji che stai utilizzando e può anche generare avvisi sullo strumento PageSpeed ​​Insights di Google.

Per risolvere questo problema, puoi servire le emoji direttamente dal tuo sito WordPress stesso e non effettuando chiamate esterne tramite js.

Ciò può essere ottenuto installando il plugin Compressed Emoji che è disponibile gratuitamente nel repository dei plugin di WordPress.org.

Quando il plug-in è attivato, la compressione offre risparmi nell'intervallo di 3kb ~ 1,3kb (all'incirca% 60) per emoji.

Fonte: WPTavern

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.