Désactiver les émoticônes introduits avec WP 4.2

135

Donc, WP 4.2 a introduit les emojis (smileys) qui ajoutent essentiellement JS et d’autres objets indésirables sur vos pages. Quelque chose que certaines personnes peuvent trouver choquant. Comment efface-t-on complètement toutes les occurrences?

Christine Cooper
la source
39
J'ai été tellement choquée que je me suis presque effondrée dans mon fauteuil lorsque j'ai lu l'annonce
Tom J Nowell
2
o_O ... 9_9 ...>: - (
cjbj

Réponses:

193

Nous allons accrocher initet supprimer les actions comme suit:

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

Nous aurons besoin de la fonction de filtre suivante pour désactiver les émoticônes TinyMCE:

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

Maintenant, nous respirons et prétendons que cette fonctionnalité n'a jamais été ajoutée à la base ... en particulier alors que des tonnes de bogues résolus doivent encore être implémentés.

Ceci est disponible sous forme de plugin, Disable Emojis .

Vous pouvez également remplacer les smileys par les versions originales des versions précédentes de WordPress à l'aide de Smileys classiques .

Mise à jour

Nous pouvons également supprimer le prefetch DNS en renvoyant false sur filter emoji_svg_url(merci @yobddigi):

add_filter( 'emoji_svg_url', '__return_false' );
Christine Cooper
la source
25
Merci! Je ne suis pas sûr de savoir pourquoi ils n’autorisent pas les gens à activer / désactiver ceci via Settings -> Writingmais c’est vraiment ennuyeux. +1
Howdy_McGee
6
Attendez-vous à votre plugin "Disable emojicons" dans le dépôt ou le github ;-)
birgire
3
Il y en a déjà quelques-uns (dont il s'agit d'une copie) wordpress.org/plugins/classic-smilies wordpress.org/plugins/disable-emojis
pcarvalho
3
Merci d'avoir répondu! Je n'arrive pas à croire que cela fait partie du noyau, du moins pas avec un "opt-in" ou un moyen de le désactiver ~ _ ~
phatskat
5
Et c'est choquant de voir qu'ils ajoutent 114 lignes de scripts et de styles dans l'en-tête qui ne sont même pas minifiés. Merci pour le plugin ...
Debajyoti Das
28

Meilleure solution si vous voulez désactiver ceci: utilisez un plugin.

Même code que dans les commentaires de Christine: https://wordpress.org/plugins/disable-emojis/

Même code qui corrige également les smileys comme étant les plus anciens: https://wordpress.org/plugins/classic-smilies/

Source: Moi, depuis que j'ai écrit ce code en premier lieu. https://plugins.trac.wordpress.org/changeset/1142480/classic-smilies

Otto
la source
Agréable! Bien que je suis tombé sur les fonctions via une entrée github. J'ai mis à jour ma réponse avec ces liens de plugins. Merci!
Christine Cooper
Oui, vous l'avez probablement fait. Je l'ai aussi mis sur github pour un utilisateur de twitter: gist.github.com/Otto42/b79ff5428993fcff45bb
Otto
14

C'est le moyen simple de supprimer les emoji. Ajouter le code ci-dessous à votrefunction.php

remove_action( 'wp_head', 'print_emoji_detection_script', 7 );
remove_action( 'wp_print_styles', 'print_emoji_styles' ); 
Les exclutips
la source
2
Cela a déjà été couvert dans ma question ci-dessus.
Christine Cooper
Merci cela supprime le code bien - curieusement mes pages prennent 2 à 3 secondes de plus à charger avec cela dans mon functions.php que sans.
Steve
Cela devrait passer par init. Voir ma réponse .
Christine Cooper
2

Si vous souhaitez empêcher Wordpress de convertir automatiquement les smileys ASCII de votre ancienne école en émojis Unicode (comme ;-)à 😉) dans vos messages, vous voudrez peut-êtreremove_filter('the_content', 'convert_smilies')

(Je ne suis pas sûr à 100% que la question est la bonne, mais cela a résolu mon problème et j'espère que cela sera utile pour quelqu'un.)

Christallkeks
la source
0

J'ai essayé quelques codes ci-dessus mais le seul code qui fonctionne de mon côté est celui-ci.

N'oubliez pas de sauvegarder votre fichier functions.php avant d'implémenter ces codes.

// 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' );
johnhgaspay
la source
Avez-vous correctement testé le code dans ma réponse?
Christine Cooper
oui je l'ai essayé plusieurs fois, le site est sur le serveur cloudflare-nginx
johnhgaspay
Juste vérifié deux fois mon code et cela fonctionne. Lorsque vous ajoutez le code dans votre fichier functions.php, essayez de définir une priorité plus élevée, comme suit:add_action( 'init', 'disable_wp_emojicons', 3 );
Christine Cooper
-1

Bonne nouvelle, j'ai ajouté une demande de fonctionnalité:

Introduisez une nouvelle option pour WordPress WP_EMOICONS ici https://core.trac.wordpress.org/ticket/38252

et apparemment, cela a été marqué comme un doublon https://core.trac.wordpress.org/ticket/32102 afin que nous puissions nous attendre à quelque chose comme

define( 'WP_EMOICONS', false );

dans les futures versions de WordPress.

prosti
la source
1
Il semble que le ticket n ° 32102 soit fermé avec wontfix . +1 pour avoir essayé et être optimiste ;-)
birgire
2
ps: pour autant que je sache, votre ticket n ° 38252 a été fermé car il s’agissait d’un duplicata du ticket n ° 32102, qui était précédemment fermé en tant que wontfix. Il semble donc que les plugins devront régler ce
problème
-2

Étant donné que les emoji WordPress sont fournis par sworg et qu'ils ne sont pas compressés, le temps de chargement du fichier SVG a une incidence sur le nombre d’emoji que vous utilisez et peut même envoyer des avertissements sur l’outil PageSpeed ​​Insights de Google.

Pour résoudre ce problème, vous pouvez servir les emoji directement à partir de votre site WordPress lui-même et non en effectuant des appels externes via js.

Ceci peut être réalisé en installant le plugin Compressed Emoji, disponible gratuitement dans le référentiel de plugins WordPress.org.

Lorsque le plug-in est activé, la compression permet de réaliser des économies allant de 3 Ko à 1,3 Ko (environ 60%) par emoji.

Source: WPTavern

Antony Agnel
la source