Disabilitare le emoticon introdotte con WordPress 4.2

27 apr 2015, 22:37:49
Visualizzazioni: 64.3K
Voti: 147

WordPress 4.2 ha introdotto le emoji (faccine) che sostanzialmente aggiungono JavaScript e altri elementi non necessari in tutte le tue pagine. Qualcosa che alcune persone potrebbero trovare scioccante. Come si possono rimuovere completamente tutte le istanze di questo?

2
Commenti

Sono rimasto così scioccato che sono quasi crollato dalla sedia quando ho letto l'annuncio

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

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

cjbj cjbj
10 ott 2016 11:20:33
Tutte le risposte alla domanda 7
9
204

Andremo ad agganciarci all'init e rimuovere le azioni come segue:

function disable_wp_emojicons() {

  // tutte le azioni relative agli emoji
  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' );

  // filtro per rimuovere gli emoji da TinyMCE
  add_filter( 'tiny_mce_plugins', 'disable_emojicons_tinymce' );
}
add_action( 'init', 'disable_wp_emojicons' );

Avremo bisogno della seguente funzione di filtro per disabilitare gli emoji in 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... specialmente mentre tantissimi bug risolti devono ancora essere implementati.

Questo è disponibile come plugin, Disable Emojis.

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

Aggiornamento

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

add_filter( 'emoji_svg_url', '__return_false' );
27 apr 2015 22:37:49
Commenti

Grazie! Non sono sicuro del perché non abbiano semplicemente permesso alle persone di abilitare/disabilitare questa funzione tramite Impostazioni -> Scrittura ma è decisamente fastidioso. +1

Howdy_McGee Howdy_McGee
27 apr 2015 22:42:05

Non vedo l'ora di vedere il tuo plugin "Disabilita emojicons" nel repository o su github ;-)

birgire birgire
27 apr 2015 22:44:05

E ricordati di includere un link nella tua risposta dove possiamo scaricare il plugin ;-)

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

ce ne sono già un paio (questo è una copia) https://wordpress.org/plugins/classic-smilies/ https://wordpress.org/plugins/disable-emojis/

pcarvalho pcarvalho
28 apr 2015 20:38:15

Grazie per la risposta! Non posso credere che faccia parte del core, almeno non con un "opt-in" o un modo per disabilitarlo ~_~

phatskat phatskat
30 apr 2015 00:47:19

Ed è scioccante vedere che aggiungono 114 righe di script e stili nell'header che non sono nemmeno minificati. Grazie per il plugin...

Debajyoti Das Debajyoti Das
22 lug 2015 15:39:01

forse considera di aggiungere anche questo: add_filter( 'emoji_svg_url', '__return_false' ); questo rimuove il prefetch dns

thebigtine thebigtine
13 set 2016 12:51:57

@yobddigi Molto bene, l'ho aggiornato di conseguenza!

Christine Cooper Christine Cooper
13 set 2016 13:37:08

WP ci sta colpendo duramente - dalla versione 4.3 "l'opzione per disabilitare le faccine grafiche è stata rimossa dalle nuove installazioni" e no, le "faccine" non sono "emoji"... Ora devi a) add_filter( 'option_use_smilies', function(){ return false; } ); oppure b) usare questo plugin (che fa ESATTAMENTE la stessa cosa) : https://wordpress.org/plugins/keep-emoticons-as-text/ Mi chiedo davvero chi sia andato a pensare "Sì, modifichiamo pure il contenuto degli utenti tramite PHP, senza chiedere..." ... -_-

jave.web jave.web
12 apr 2017 18:22:43
Mostra i restanti 4 commenti
2
29

Soluzione migliore se vuoi disabilitare questo: usa un plugin.

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

Stesso codice che corregge anche le faccine per essere quelle vecchie: https://wordpress.org/plugins/classic-smilies/

Fonte: Io, dato che ho scritto quel codice in primo luogo. https://plugins.trac.wordpress.org/changeset/1142480/classic-smilies

29 apr 2015 01:02:29
Commenti

Bene! Anche se ho scoperto le funzioni tramite un post su github. Ho aggiornato la mia risposta con questi link ai plugin. Grazie!

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

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

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

Questo è il modo semplice per rimuovere le emoji. Aggiungi il codice seguente nel tuo file function.php

remove_action( 'wp_head', 'print_emoji_detection_script', 7 );
remove_action( 'wp_print_styles', 'print_emoji_styles' ); 
25 giu 2015 00:48:49
Commenti

Questo è già stato trattato nella mia domanda sopra.

Christine Cooper Christine Cooper
22 lug 2015 15:38:31

Grazie, questo rimuove il codice perfettamente - stranamente le mie pagine impiegano da 2 a 3 secondi in più per caricarsi con questo nel mio functions.php rispetto a senza.

Steve Steve
21 lug 2017 15:11:31

Questo dovrebbe essere eseguito tramite init. Vedi la mia risposta.

Christine Cooper Christine Cooper
19 ago 2017 20:35:42
0

Se vuoi impedire a WordPress di convertire automaticamente i tuoi vecchi smiley ASCII in emoji Unicode (come ;-) in ) nei tuoi articoli, potresti voler usare remove_filter('the_content', 'convert_smilies')

(Non sono sicuro al 100% che sia questo il problema della domanda, ma ha risolto il mio e spero possa essere utile a qualcuno.)

13 giu 2017 17:48:00
3

Ho provato alcuni dei codici sopra ma l'unico che funziona per me è questo.

Non dimenticare di fare un backup del tuo functions.php prima di implementare questi codici.

// RIMUOVI EMOJI DI 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 lug 2017 07:33:11
Commenti

Hai testato correttamente il codice nella mia risposta?

Christine Cooper Christine Cooper
10 lug 2017 10:44:26

sì, l'ho provato molte volte, il sito è su un server cloudflare-nginx

johnhgaspay johnhgaspay
10 lug 2017 11:23:26

Ho ricontrollato il mio codice e funziona. Quando aggiungi il codice nel tuo file functions.php, prova a impostare una priorità più alta, così: add_action( 'init', 'disable_wp_emojicons', 3 );

Christine Cooper Christine Cooper
10 lug 2017 12:22:48
2
-1

Buone notizie, ho aggiunto una richiesta di funzionalità:

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

e apparentemente è stata marcata come duplicato https://core.trac.wordpress.org/ticket/32102 quindi possiamo aspettarci qualcosa come

define( 'WP_EMOICONS', false );

nelle future versioni di WordPress.

7 ott 2016 16:04:59
Commenti

Sembra che il ticket #32102 sia stato chiuso con wontfix. +1 per averci provato ed essere ottimisti ;-)

birgire birgire
7 ott 2016 17:13:09

ps: per quanto ho capito, il tuo ticket #38252 è stato chiuso perché era un duplicato del ticket #32102, che era stato precedentemente chiuso come wontfix. Quindi sembra che saranno i plugin a dover risolvere la questione, per i giorni a venire ;-) Da qui il mio voto a favore per il tuo ottimismo ;-)

birgire birgire
7 ott 2016 17:23:04
0
-2

Poiché le emoji di WordPress vengono servite da s.w.org e non sono compresse, ciò influisce sul tempo di caricamento degli SVG a seconda di quante emoji stai utilizzando, e può persino generare avvisi nello strumento Google PageSpeed Insights.

Per risolvere questo problema, puoi servire le emoji direttamente dal tuo sito WordPress stesso, senza effettuare chiamate esterne attraverso JavaScript.

Questo può essere ottenuto installando il plugin Compressed Emoji, disponibile gratuitamente nel repository dei plugin di WordPress.org.

Quando il plugin è attivato, la compressione offre un risparmio nell'ordine di 3kb ~ 1.3kb (circa il 60%) per emoji.

Fonte: WPTavern

15 nov 2016 16:17:59