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

为WordPress添加文章索引

文章索引相当于文章目录,点击目录自动跳转到相应位置,这就需要你的文章有小标题,像我经常用h3标签来做小标题,这样所有的h3标签就能形成一个索引目录。我们要做的就是把h3标签自动识别出来并组装成一个目录,好了,开始实现方法。 实现方法 在文章里必须有h3标签,每…

如果你更新到 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;
 }


 

WordPress后台更新提示输入FTP信息

经常在群里看到有人说更新主题或插件的时候,需要输入FTP信息,那些人无奈的都是通过FTP来安装主题和插件,#beetheme资源网#看着都觉得好累,可是什么原因导致出现这样的情况的呢? 无非就是目录文件的授权组问题了,如果是VPS的,直接在ssh里命令: chown -R w…

精彩推荐

本站承接 WordPress / DedeCMS / ThinkPHP 等
系统建站、仿站、开发、定制等业务!

1. 本站所有资源来源于用户上传和网络,仅作为演示数据,如有侵权请邮件联系站长!
2. 本站承接各类网站建设,仿站,多平台小程序搭建制作!
3. 本站联系QQ:897918909
beetheme资源网 » WordPress 教程:WordPress 4.2后 头部多出的Emoji表情的处理方法

发表评论

售后服务范围1、服务器配置及主机购买推荐
2、模板使用范围内问题免费咨询
3、单价超过100元的模板免费一次安装,需提供服务器信息。
付费增值服务1、提供WordPress主题、插件汉化、优化等服务请详询在线客服
2、承接 WordPress、DedeCMS、ThinkPHP 等系统建站、仿站、开发、定制等服务
3、服务器环境配置(一般 ¥50-300)
4、网站中毒处理(需额外付费,500元/次/质保三个月)
售后服务时间周一至周五(法定节假日除外) 9:00-23:00
免责声明本站所提供的模板(主题/插件)等资源仅供学习交流,若使用商业用途,请购买正版授权,否则产生的一切后果将由下载用户自行承担,有部分资源为网上收集或仿制而来,若模板侵犯了您的合法权益,请来信通知我们(Email: admin@vip.beetheme.cn),我们会及时删除,给您带来的不便,我们深表歉意!

Hi, 如果你对这款模板有疑问,可以跟我们联系哦!

联系我们

提供最优质的资源集合

立即查看 了解详情

扫码了解我们!