web-dev-qa-db-fra.com

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

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

133
Christine Cooper

Nous allons nous accrocher à init et 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' );

La fonction de filtrage suivante est nécessaire 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 au noyau ... en particulier alors que des tonnes de resolus bugs sont encore à implémenter.

Ceci est disponible sous forme de plugin, Disable Emojis .

Sinon, vous pouvez remplacer les smileys par les versions originales des versions précédentes de WordPress en utilisant Smileys Classiques .

Mettre à jour

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

add_filter( 'emoji_svg_url', '__return_false' );
189
Christine Cooper

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

Même code à partir des commentaires de Christine: https://wordpress.org/plugins/disable-emojis/

Même code qui fixe également les smileys aux 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

27
Otto

C'est le moyen simple de supprimer les emoji. Ajoutez le code ci-dessous à votre function.php

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

Si vous souhaitez empêcher Wordpress de convertir automatiquement votre ancienne école ASCII smileys en émojis Unicode (comme ;-) à ????) dans vos messages, vous voudrez peut-être remove_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.)

2
Christallkeks

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