WordPress 教程:WordPress 4.2后 头部多出的Emoji表情的处理方法

如果你更新到 WordPress 的 4.2 版本,查看网页源代码你会发现 WordPress 会自动在加载一…

如果你更新到 WordPress 的 4.2 版本,查看网页源代码你会发现 WordPress 会自动在加载一段用于支持 emjo 表情的脚本(JS+CSS)。对于大部分人来说,这个是十分鸡肋的功能,再加上 GFW 的强大力量,反而影响加载速度。

我们有两种解决方法:启用或禁用。

原因分析

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

  1. <script type=“text/javascript”>
  2. “baseUrl”:“http://s.w.org/images/core/emoji/72×72/”,“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.  <style type=“text/css”>
  5.  img.emoji {
  6.  border: none !important;
  7.  height: 1em !important;
  8.  margin: 0 .07em !important;
  9.  background: none !important;
  10.  }
  11. functions.php 文件中:
    1. function disable_emojis() {
    2.  remove_action( ‘wp_head’, ‘print_emoji_detection_script’, 7 );
  12.  remove_action( ‘wp_print_styles’, ‘print_emoji_styles’ );
  13.  remove_filter( ‘the_content_feed’, ‘wp_staticize_emoji’ );
  14.  remove_filter( ‘wp_mail’, ‘wp_staticize_emoji_for_email’ );
  15.  }
  16. function disable_emojis_tinymce( $plugins ) {
  17.  if ( is_array$plugins ) ) {
  18. return array_diff$pluginsarray( ‘wpemoji’ ) );
  19.  } else {
  20. return array();
  21.  }
  22. Twitter Emoji 表情包下载,下载后直接解压至主题目录,文件夹名不变。将以下代码放在主题目录下的 functions.php 文件中:
    1. function smilies_reset() {
    2.  global $wpsmiliestrans$wp_smiliessearch;
    3.  if (!get_option(‘use_smilies’)) {
    4. return;
    5.  }
    6. $wpsmiliestrans_fixed = array(
    7.  ‘:mrgreen:’ => “xf0x9fx98xa2”,
    8. “xf0x9fx98xa3”,

  23.  ‘:roll:’ => “xf0x9fx98xa4”,
  24. “xf0x9fx98xa6”,

  25.  ‘:arrow:’ => “xf0x9fx98x83”,
  26. “xf0x9fx98x82”,

  27.  ‘:-)’ => “xf0x9fx98x81”,
  28. “xf0x9fx98xa7”,

  29.  ‘:)’ => “xf0x9fx98xa8”,
  30. “xf0x9fx98x84”,

  31.  ‘:!:’ => “xf0x9fx98x85”,
  32.  $wpsmiliestrans = array_merge($wpsmiliestrans$wpsmiliestrans_fixed);
  33.  
  34. function static_emoji_url() {
  35.  return get_bloginfo(‘template_directory’).’/72×72/’;
  36.  
  37. function reset_emojis() {
  38.  remove_action(‘wp_head’, ‘print_emoji_detection_script’, 7);
  39.  remove_action(‘wp_print_styles’, ‘print_emoji_styles’);
  40.  add_filter(‘the_content’, ‘wp_staticize_emoji’);
  41.  smilies_reset();
  42.  }
  43.  
  44. function fa_get_wpsmiliestrans(){
  45.  global $wpsmiliestrans;
  46. $wpsmilies = array_unique($wpsmiliestrans);
  47.  foreach($wpsmilies as $alt => $src_path){
  48. $emoji = str_replace(array(‘&#x’, ‘;’), , wp_encode_emoji($src_path));
  49.  $output .= ‘<a class=“add-smily” data-smilies=“‘.$alt.’”><img class=“wp-smiley” src=“‘.get_bloginfo(‘template_directory’).’/72×72/’. $emoji .’png” /></a>’;
  50.  return $output;
  51.  }
类别:WordPress经验

本文收集自互联网,转载请注明来源。
如有侵权,请联系 wper_net@163.com 删除。

评论 (0)COMMENT

登录 账号发表你的看法,还没有账号?立即免费 注册