Desabilitar emojicons introduzidos no WP 4.2

135

Então o WP 4.2 introduziu emojis (smileys) que basicamente adicionam JS e outros itens indesejados em todas as suas páginas. Algo que algumas pessoas podem achar chocante. Como alguém apaga completamente todas as instâncias disso?

Christine Cooper
fonte
39
Fiquei tão chocado que quase desabei na minha cadeira quando li o anúncio
Tom J Nowell
2
o_O ... 9_9 ...>: - (
cjbj 10/10

Respostas:

193

Vamos nos conectar inite remover as ações da seguinte maneira:

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

Precisamos da seguinte função de filtro para desativar os emojicons do TinyMCE:

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

Agora respiramos e fingimos que esse recurso nunca foi adicionado ao núcleo ... particularmente enquanto toneladas de bugs resolvidos ainda não foram implementados.

Está disponível como um plug-in, Desativar Emojis .

Como alternativa, você pode substituir os smilies pelas versões originais das versões anteriores do WordPress usando o Classic Smilies .

Atualizar

Também podemos remover a pré-busca do DNS retornando false no filtro emoji_svg_url(obrigado @yobddigi):

add_filter( 'emoji_svg_url', '__return_false' );
Christine Cooper
fonte
25
Obrigado! Não sei por que eles não apenas permitiram que as pessoas ativassem / desativassem isso, Settings -> Writingmas é definitivamente irritante. +1
Howdy_McGee
6
Aguardamos a sua "emojicons Desativar" plug-in no repo ou github ;-)
birgire
3
há um par deles já (que a presente é cópia) wordpress.org/plugins/classic-smilies wordpress.org/plugins/disable-emojis
pcarvalho
3
Obrigado pela resposta! Eu não acredito que isso faz parte do núcleo, pelo menos não com um "opt-in" ou uma maneira de desativá-lo ~ _ ~
phatskat
5
E é chocante ver que eles adicionam 114 linhas que valem scripts e estilos no cabeçalho que nem são minificados. Graças para o plugin ...
Debajyoti Das
28

Melhor solução se você quiser desativar isso: use um plugin.

O mesmo código dos comentários de Christine: https://wordpress.org/plugins/disable-emojis/

O mesmo código que também corrige os smilies dos mais antigos: https://wordpress.org/plugins/classic-smilies/

Fonte: Eu, desde que escrevi esse código em primeiro lugar. https://plugins.trac.wordpress.org/changeset/1142480/classic-smilies

Otto
fonte
Agradável! Embora me deparei com as funções através de uma entrada no github. Atualizei minha resposta com esses links de plug-in. Obrigado!
Christine Cooper
Sim, você provavelmente fez. Eu o coloquei no github também para um usuário do twitter: gist.github.com/Otto42/b79ff5428993fcff45bb
Otto
14

Esta é a maneira simples de remover emojis. Adicione o código abaixo ao seufunction.php

remove_action( 'wp_head', 'print_emoji_detection_script', 7 );
remove_action( 'wp_print_styles', 'print_emoji_styles' ); 
Exclutips
fonte
2
Isso já foi abordado na minha pergunta acima.
Christine Cooper
Graças a isso, ele remove o código muito bem - estranhamente, minhas páginas demoram 2 a 3 segundos a mais para carregar isso no meu functions.php do que sem ele.
21417 Steve Steve
Isso deve ser executado via init. Veja minha resposta .
Christine Cooper
2

Se você deseja impedir que o Wordpress converta automaticamente seus smilies ASCII da velha escola em emojis Unicode ( ;-)por exemplo 😉) em todas as suas postagens, convémremove_filter('the_content', 'convert_smilies')

(Não tenho 100% de certeza de que trata a questão, mas isso resolveu meu problema e espero que seja útil para alguém.)

Christallkeks
fonte
0

Eu tentei alguns códigos acima, mas os únicos códigos que funcionam do meu lado é esse.

Não se esqueça de fazer backup do seu functions.php antes de implementar esses 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' );
johnhgaspay
fonte
Você testou corretamente o código na minha resposta?
Christine Cooper
sim, eu tentei muitas vezes, o site está em cloudflare-nginx servidor
johnhgaspay
Apenas verifiquei meu código e ele está funcionando. Quando você adiciona o código ao seu arquivo functions.php, tente definir uma prioridade mais alta, assim:add_action( 'init', 'disable_wp_emojicons', 3 );
Christine Cooper
-1

Boas notícias, adicionei uma solicitação de recurso:

Apresente uma nova opção ao WordPress WP_EMOICONS aqui https://core.trac.wordpress.org/ticket/38252

e, aparentemente, isso foi marcado como https://core.trac.wordpress.org/ticket/32102 duplicado, para que possamos esperar algo como

define( 'WP_EMOICONS', false );

nos futuros lançamentos do WordPress.

prosti
fonte
1
Parece que o ticket 32102 foi fechado com o wontfix . +1 para tentar e beeing otimista ;-)
birgire
2
ps: até onde eu entendi, seu ticket # 38252 foi fechado porque era uma duplicata do ticket 32102, que foi anteriormente fechado como um wontfix. Portanto, parece que plugins terá que resolver isso, por dias para vir ;-) Assim votando-lo para você ser tão otimista ;-)
birgire
-2

Como os emoticons do WordPress são exibidos no sworg e não são compactados, isso afeta o tempo de carregamento do SVG, dependendo de quantos emojis você estiver usando, e pode até lançar avisos na ferramenta PageSpeed ​​Insights do Google.

Para corrigir esse problema, você pode veicular o emoji diretamente do seu site WordPress e não fazer chamadas externas por meio de js.

Isso pode ser conseguido instalando o plugin Compressed Emoji, disponível gratuitamente no repositório do plugin WordPress.org.

Quando o plug-in é ativado, a compactação oferece uma economia no intervalo de 3 a 1,3 kb (aproximadamente 60%) por emoji.

Fonte: WPTavern

Antony Agnel
fonte