Deshabilitar emojicons introducidos con WP 4.2


135

Entonces, WP 4.2 introdujo emojis (emoticonos) que básicamente agrega JS y otra basura en todas sus páginas. Algo que algunas personas pueden encontrar impactante. ¿Cómo se borran por completo todas las instancias de esto?


39
Estaba tan sorprendido que casi me desplomo en la silla cuando leí el anuncio
Tom J Nowell

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

Respuestas:


193

Conectaremos inity eliminaremos acciones de la siguiente manera:

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

Necesitaremos la siguiente función de filtro para deshabilitar los emojicons de TinyMCE:

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

Ahora respiramos y pretendemos que esta característica nunca se agregó al núcleo ... particularmente mientras todavía se deben implementar toneladas de errores resueltos .

Está disponible como un complemento, Desactivar Emojis .

Alternativamente, puede reemplazar las caritas con las versiones originales de versiones anteriores de WordPress usando Caritas clásicas .

Actualizar

También podemos eliminar la emoji_svg_urlcaptación previa de DNS devolviendo falso en el filtro (gracias @yobddigi):

add_filter( 'emoji_svg_url', '__return_false' );

25
¡Gracias! No estoy seguro de por qué no solo permitieron que las personas habilitaran / deshabilitaran esto, Settings -> Writingsino que definitivamente es molesto. +1
Howdy_McGee

66
Esperamos su complemento "Desactivar emojicons" en el repositorio o github ;-)
birgire


3
¡Gracias por la respuesta! No puedo creer que esto sea parte del núcleo, al menos no con un "opt-in" o una forma de desactivarlo ~ _ ~
phatskat

55
Y es impactante ver que agregan 114 líneas que valen guiones y estilos en el encabezado que ni siquiera se minimizan. Gracias por el complemento ...
Debajyoti Das

28

Mejor solución si desea deshabilitar esto: use un complemento.

Mismo código que el de los comentarios de Christine: https://wordpress.org/plugins/disable-emojis/

El mismo código que también repara las caritas para que sean las más antiguas: https://wordpress.org/plugins/classic-smilies/

Fuente: Yo, desde que escribí ese código en primer lugar. https://plugins.trac.wordpress.org/changeset/1142480/classic-smilies


¡Agradable! Aunque encontré las funciones a través de una entrada de github. He actualizado mi respuesta con estos enlaces de complementos. ¡Gracias!
Christine Cooper

Sí, probablemente lo hiciste. También lo puse en github para un usuario de twitter: gist.github.com/Otto42/b79ff5428993fcff45bb
Otto

14

Esta es la forma simple de eliminar emoji. Agregue el siguiente código a sufunction.php

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

2
Esto ya estaba cubierto en mi pregunta anterior.
Christine Cooper

Gracias, esto elimina muy bien el código; curiosamente, mis páginas tardan entre 2 y 3 segundos más en cargarse con esto en mis funciones.php que sin él.
Steve

Esto debería ejecutarse a través de init. Mira mi respuesta .
Christine Cooper

2

Si desea evitar que Wordpress de convertir automáticamente sus viejos emoticones ASCII a Unicode escuela emojis (como ;-)a 😉) en sus mensajes por completo, es posible que deseeremove_filter('the_content', 'convert_smilies')

(No estoy 100% seguro de que se trata la pregunta, pero esto resolvió mi problema y espero que sea útil para alguien).


0

He intentado algunos códigos arriba, pero el único código que funciona en mi extremo es este.

No olvide hacer una copia de seguridad de sus functions.php antes de implementar estos códigos.

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

¿Probó correctamente el código en mi respuesta?
Christine Cooper

Sí lo he intentado muchas veces, sitio está en CloudFlare-servidor nginx
johnhgaspay

Solo verifiqué mi código y está funcionando. Cuando agregue el código a su archivo functions.php, intente establecer una prioridad más alta, como esta:add_action( 'init', 'disable_wp_emojicons', 3 );
Christine Cooper

-1

Buenas noticias, agregué una solicitud de función:

Introduzca una nueva opción para WordPress WP_EMOICONS aquí https://core.trac.wordpress.org/ticket/38252

y aparentemente esto se ha marcado como duplicado https://core.trac.wordpress.org/ticket/32102, por lo que podemos esperar algo así como

define( 'WP_EMOICONS', false );

en los futuros lanzamientos de WordPress.


1
Parece que el boleto n . ° 32102 está cerrado con wontfix . +1 por intentar y ser optimista ;-)
birgire

2
ps: por lo que yo entiendo, su boleto # 38252 se cerró porque era un duplicado del boleto # 32102, que anteriormente se cerró como wontfix. Por lo tanto, parece que los complementos tendrán que resolver esto, en los próximos días ;-) Por lo tanto, votarlo por ser tan optimista ;-)
birgire

-2

Dado que los emoji de WordPress se sirven desde sworg y no están comprimidos, esto afecta el tiempo de carga de SVG dependiendo de cuántos emoji estés usando, e incluso puede arrojar advertencias sobre la herramienta PageSpeed ​​Insights de Google.

Para solucionar este problema, puede servir los emoji directamente desde su propio sitio de WordPress y no haciendo llamadas externas a través de js.

Esto se puede lograr instalando el complemento Compressed Emoji que está disponible de forma gratuita en el repositorio de complementos de WordPress.org.

Cuando se activa el complemento, la compresión ofrece ahorros en el rango de 3kb ~ 1.3kb (aproximadamente% 60) por emoji.

Fuente: WPTavern