您的位置:鄭州SEO網站優化 > WordPress > 內容詳情

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

发布时间:2016-04-17 00:00 來源:互聯網 編輯:本站編輯 浏覽次數:62人

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

我們有兩種解決方法:啓用或禁用。

原因分析

腳本就是類似下面的代碼:

<script?type="text/javascript">?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"}};?!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);?</script>?<style?type="text/css">?img.wp-smiley,?img.emoji?{?display:?inline?!important;?border:?none?!important;?box-shadow:?none?!important;?height:?1em?!important;?width:?1em?!important;?margin:?0?.07em?!important;?vertical-align:?-0.1em?!important;?background:?none?!important;?padding:?0?!important;?}?</style>

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

禁用:移除 WordPress 4.2 中前台自动加载的 emoji 脚本

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

/**?*?Disable?the?emoji's?*/?function?disable_emojis()?{?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_action(?'admin_print_styles',?'print_emoji_styles'?);?remove_filter(?'the_content_feed',?'wp_staticize_emoji'?);?remove_filter(?'comment_text_rss',?'wp_staticize_emoji'?);?remove_filter(?'wp_mail',?'wp_staticize_emoji_for_email'?);?add_filter(?'tiny_mce_plugins',?'disable_emojis_tinymce'?);?}?add_action(?'init',?'disable_emojis'?);/**?*?Filter?function?used?to?remove?the?tinymce?emoji?plugin.?*/?function?disable_emojis_tinymce(?$plugins?)?{?if?(?is_array(?$plugins?)?)?{?return?array_diff(?$plugins,?array(?'wpemoji'?)?);?}?else?{?return?array();?}?}

启用:转存至本地调用 Emoji 表情

WordPress 官方将此功能会写入正式版一定有其理由。但我们知道 WP 的 CDN 早就被*掉,唯一方法就是转存到本地,使 WP 识别本地 Emoji 表情。

Twitter Emoji 表情包下载,下载后直接解压至主题目录,文件夹名不变。将以下代码放在主题目录下的 functions.php 文件中:

//首先補全wp的表情庫?function?smilies_reset()?{?global?$wpsmiliestrans,?$wp_smiliessearch;?//?don't?bother?setting?up?smilies?if?they?are?disabled?if?(!get_option('use_smilies'))?{?return;?}?$wpsmiliestrans_fixed?=?array(?':mrgreen:'?=>?"\xf0\x9f\x98\xa2",?':smile:'?=>?"\xf0\x9f\x98\xa3",?':roll:'?=>?"\xf0\x9f\x98\xa4",?':sad:'?=>?"\xf0\x9f\x98\xa6",?':arrow:'?=>?"\xf0\x9f\x98\x83",?':-('?=>?"\xf0\x9f\x98\x82",?':-)'?=>?"\xf0\x9f\x98\x81",?':('?=>?"\xf0\x9f\x98\xa7",?':)'?=>?"\xf0\x9f\x98\xa8",?':?:'?=>?"\xf0\x9f\x98\x84",?':!:'?=>?"\xf0\x9f\x98\x85",?);?$wpsmiliestrans?=?array_merge($wpsmiliestrans,?$wpsmiliestrans_fixed);?}?//替換cdn路徑?function?static_emoji_url()?{?return?get_bloginfo('template_directory').'/72x72/';?}?//讓文章內容和評論支持?emoji?並禁用?emoji?加載的亂七八糟的腳本?function?reset_emojis()?{?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_action('admin_print_styles',?'print_emoji_styles');?add_filter('the_content',?'wp_staticize_emoji');?add_filter('comment_text',?'wp_staticize_emoji',50);?//在轉換爲表情後再轉爲靜態圖片?smilies_reset();?add_filter('emoji_url',?'static_emoji_url');?}?add_action('init',?'reset_emojis');?//輸出表情?function?fa_get_wpsmiliestrans(){?global?$wpsmiliestrans;?$wpsmilies?=?array_unique($wpsmiliestrans);?foreach($wpsmilies?as?$alt?=>?$src_path){?$emoji?=?str_replace(array('&#x',?';'),?'',?wp_encode_emoji($src_path));?$output?.=?'<a?class="add-smily"?data-smilies="'.$alt.'"><img?class="wp-smiley"?src="'.get_bloginfo('template_directory').'/72x72/'.?$emoji?.'png"?/></a>';?}?return?$output;?}

最新文章

  • 1使用自媒體平台做SEO優化成未來趨勢
  • 2直播都那麽火爲什麽還一直堅持做
  • 3百度將近一個月的瘋狂更新,今天終
  • 4洛陽優化公司教你關于搜索引擎優化
  • 5SEO從業者學習免費自助建站的三個思
  • 6洛陽seo教你怎樣才能做好SEO管理者?
  • 7图片外链有什么用 可以提高网站的排
  • 8驚爆!有關SEO文章收錄的問題,詳情
  • 9數據庫遷移造成網站兩三天內打不開
  • 10新鄉SEO感想篇:SEO基礎五要素回顧
  • 11教你通過逆向思維實施SEO達成目的
  • 12新鄉網站優化網站一直不收錄怎麽辦
  • 13新鄉SEO告訴你網站如何進行圖片搜索
  • 14新鄉SEO告訴你新站怎樣快速獲得百度
  • 15開封裝修公司案例-開封漢東裝飾設計
  • 16開封SEO案例-開封婚紗攝影工作室
  • 17開封SEO案例-蔬菜大棚,大棚骨架
  • 18開封SEO優化案例-開封大衆婚慶公司
  • 19開封優化案例-開封大衆搬家公司
  • 20開封SEO案例-開封美的空調維修