问题描述

所以 WP 4.2 引入了 emojis(笑脸),它基本上添加了 JS 和其他垃圾遍及你的页面。有些人可能会感到震惊。如何完全清除所有这些实例?

最佳解决方案

我们将钩入 init 并删除如下操作:

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

我们将需要以下过滤功能来禁用 TinyMCE emojicons:

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

现在我们呼吸,假装这个功能从来没有添加到核心… 特别是在解决了大量的 bug 的时候,yet 被实现。

这可以作为一个插件 Disable Emojis

或者,您可以使用 Classic Smilies 将以前版本的 WordPress 的原始版本替换为表情符号。

Update

我们也可以通过在过滤器 emoji_svg_url 上返回 false 来删除 DNS 预取 (感谢 @yobddigi):

add_filter( 'emoji_svg_url', '__return_false' );

次佳解决方案

如果你想禁用这个更好的解决方案:使用一个插件。

与克里斯汀的评论相同的代码:https://wordpress.org/plugins/disable-emojis/

相同的代码,也修复了表情符号是旧的:https://wordpress.org/plugins/classic-smilies/

资料来源:我,因为我写的那个代码在第一位。 https://plugins.trac.wordpress.org/changeset/1142480/classic-smilies

第三种解决方案

这是删除表情符号的简单方式。将下面的代码添加到 function.php

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

参考文献

注:本文内容整合自 Google/Baidu/Bing 辅助翻译的英文资料结果。如果您对结果不满意,可以加入我们改善翻译效果:薇晓朵技术论坛。