Disabilitare le emoticon introdotte con WordPress 4.2
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?
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' );

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

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

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

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

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

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

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

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

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

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

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

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.

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

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

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

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

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.

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

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

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
