当前位置: 首页 » 网站建设 » wordpress教程 » 正文

WordPress禁用Emoji表情及本地化Emoji提高网站速度

发布时间:2025-01-15 以下文章来源于网友投稿,内容仅供参考!

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

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

原因分析

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

area data-settings="dblclick" readonly ><script type="text/javascript"> window._wpemojiSettings = {"baseUrl":"http:\/\/s.w.org\/images\/core\/emoji\/72x72\/","ext":".png","source":{"concatemoji":"http:\/\/devework\/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>area>161718<script type="text/javascript"> window._wpemojiSettings = {"baseUrl":"http:\/\/s.w.org\/images\/core\/emoji\/72x72\/","ext":".png","source":{"concatemoji":"http:\/\/devework\/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 文件中:

area data-settings="dblclick" readonly > 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' ); function disable_emojis_tinymce( $plugins ) { if ( is_array( $plugins ) ) { return array_diff( $plugins, array( 'wpemoji' ) ); } else { return array(); } }area>161718192021222324 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' ); 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 表情包下载 http://cdn.fatesinger/72×72.zip,下载后直接解压至主题目录,文件夹名不变。将以下代码放在主题目录下的 functions.php 文件中:

area data-settings="dblclick" readonly >//首先补全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 data-smilies="'.$alt.'"><img src="'.get_bloginfo('template_directory').'/72x72/'. $emoji .'png" /></a>'; } return $output; }area>161718192021222324252627282930313233343536373839404142434445464748//首先补全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 data-smilies="'.$alt.'"><img src="'.get_bloginfo('template_directory').'/72x72/'. $emoji .'png" /></a>'; } return $output; }
  • • 开启wds是什么意思?无线路由器wds是怎么开启?

    开启wds是什么意思?WDS是英文Wireless Distribution System的简称,中文名称是:无线分布式系统。WDS功能就是一种帮助无线基站与

  • • 系统boot是什么意思?电脑出现boot manager怎么办?

    系统boot是什么意思1、开机后我们连续按启动热键,进入bios界面,我们就可以看到boot了。2、boot有启动的意思,在电脑中就是指电

  • • win10系统msconfig无法正常启动怎么办?win10系统msconfig怎么设置最

    msconfig打不开解决办法:1.先打开电脑开始菜单,在操作窗口输入regedit,打开注册表编辑器。然后将HKEY_LOCAL_MACHINE\SOFTWARE

  • • 金士顿u盘怎么写保护?金士顿U盘恢复出厂设置怎么操作?

    金士顿u盘怎么写保护?方法一:如果你的U盘如我简介中说的那样,有一个自带的物理写保护的小 开关 ,就观察一下是不是已经将开关

  • • 苹果AirPods Pro 2发布 搭载H2芯片降噪能力翻倍

    9月8日凌晨,苹果正式发布第二代主动降噪耳机AirPods Pro 2,搭载H2芯片,降噪能力翻倍,而且续航也飚至30小时。得益于全新的H2

  • biubiu加速器
    九游优盟游戏推广平台
    九游推广联盟
    digdig游戏入口
    4999小游戏大全
    九游游戏网
    站长素材
    植物大战僵尸杂交免费版
    站长之家
    测速网在线测网速
    354211邮编查询,354211邮政编码查询
    354209邮编查询,354209邮政编码查询
    353132邮编查询,353132邮政编码查询
    354215邮编查询,354215邮政编码查询
    353121邮编查询,353121邮政编码查询
    354213邮编查询,354213邮政编码查询
    353125邮编查询,353125邮政编码查询
    354201邮编查询,354201邮政编码查询
    353101邮编查询,353101邮政编码查询
    354200邮编查询,354200邮政编码查询