正确面对WordPress4.2+Emoji表情的使用法

原因分析

脚本就是类似下面的代码:

  1. <script type="text/javascript">
  2.  window._wpemojiSettings = {"baseUrl":"http:\/\/s.w.org\/images\/core\/emoji\/72x72\/","ext":".png","source":{"concatemoji":"http:\/\/devework.com\/wp-includes\/js\/wp-emoji-release.min.js?ver=4.2"}};
  3.  !function(a,b,c){function d(a){var c=b.createElement("canvas"),d=c.getContext&&c.getContext("2d");return d&&d.fillText?(d.textBaseline="top",d.font="600 32px Arial","flag"===a?(d.fillText(String.fromCharCode(55356,56812,55356,56807),0,0),c.toDataURL().length>3e3):(d.fillText(String.fromCharCode(55357,56835),0,0),0!==d.getImageData(16,16,1,1).data[0])):!1}function e(a){var c=b.createElement("script");c.src=a,c.type="text/javascript",b.getElementsByTagName("head")[0].appendChild(c)}var f;c.supports={simple:d("simple"),flag:d("flag")},c.supports.simple&&c.supports.flag||(f=c.source||{},f.concatemoji?e(f.concatemoji):f.wpemoji&&f.twemoji&&(e(f.twemoji),e(f.wpemoji)))}(window,document,window._wpemojiSettings);
  4.  </script>
  5.  <style type="text/css">
  6.  img.wp-smiley,
  7.  img.emoji {
  8.  display: inline !important;
  9.  border: none !important;
  10.  box-shadow: none !important;
  11.  height: 1em !important;
  12.  width: 1em !important;
  13.  margin: 0 .07em !important;
  14.  vertical-align: -0.1em !important;
  15.  background: none !important;
  16.  padding: 0 !important;
  17.  }
  18.  </style>

因为WordPress 更新 4.2 的一个新增功能就是支持 emjo 表情,但看部分加载源居然是 wp.org 的 js 文件。对于大部分人来说,这个是十分鸡肋的功能。
Emoji表情:

WordPress4.2+Emoji表情的使用法

禁用:移除 WordPress 4.2 中前台自动加载的 emoji 脚本
既然功能鸡肋,不如直接移除掉来得更加快捷。代码提取自 Disable Emojis 插件,可以放在主题目录下的 functions.php 文件中:

  1. /**
  2.  * Disable the emoji's
  3.  */
  4.  function disable_emojis() {
  5.  remove_action( 'wp_head', 'print_emoji_detection_script', 7 );
  6.  remove_action( 'admin_print_scripts', 'print_emoji_detection_script' );
  7.  remove_action( 'wp_print_styles', 'print_emoji_styles' );
  8.  remove_action( 'admin_print_styles', 'print_emoji_styles' );
  9.  remove_filter( 'the_content_feed', 'wp_staticize_emoji' );
  10.  remove_filter( 'comment_text_rss', 'wp_staticize_emoji' );
  11.  remove_filter( 'wp_mail', 'wp_staticize_emoji_for_email' );
  12.  add_filter( 'tiny_mce_plugins', 'disable_emojis_tinymce' );
  13.  }
  14.  add_action( 'init', 'disable_emojis' );
  15. /**
  16.  * Filter function used to remove the tinymce emoji plugin.
  17.  */
  18.  function disable_emojis_tinymce( $plugins ) {
  19.  if ( is_array( $plugins ) ) {
  20.  return array_diff( $plugins, array( 'wpemoji' ) );
  21.  } else {
  22.  return array();
  23.  }
  24.  }

使用Disable Emojis插件来解决
如果您对代码不太熟悉,或者怕添加出错,没关系,直接安装Disable Emojis插件也可以解决此问题,点此下载:Disable Emojis插件


发布日期:

所属分类: Wordpress, Wordpress 综合 标签: