马上就加载好了...

禁用WordPress 4.2自动加载emjo代码的方法

by on Aug 07 , 2015 , under 学术 , 356 views , Leave a Comment

自从WordPress学会自动升级之后,就很少操心代码的事情了,但是最近WordPress自动升级到 4.2之后发现了一串诡异代码,得及时屏蔽它,嘿嘿!

wordpress 清理WordPress自动保存和修订版本生成的冗余数据   王佳冬个人博客

WordPress 4.2惊现无限加载

在升级WordPress 4.2 后,网站加载了一段莫名的JavaScript以及CSS,而且还在不断加载一个墙外网站资源,是的网站不断处于加载中,结果一看才发现是新版WordPress的问题,检查了一下WordPress的系统文件,发现在WordPress源文件中加载了墙外资源。

原来是emjo代码

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

查看源代码如下:

<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>

禁用方法

既然功能鸡肋,不如直接移除掉来得更加快捷。代码提取自 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();
 }
 }

当然你也可以直接安装这个插件:https://wordpress.org/plugins/disable-emojis/

 

沙发竟然还没被抢!


赶快说点什么吧! ^_^