前天老蒋在群里有看到网友在登录WordPress后台编辑器更新文章的时候有出现"Failed to load plugin:wpemoji"问题提示。然后搜索相关问题确实还是没有见到,但是从提示上看应该是在加载wpemoji的时候错误,可能是某个文件没有加载出来导致的。那问题如何解决呢?
第一、禁用 Emoji 功能


/
Disable the emoji Edit By itbulu.com
/
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 ) {<br> if ( is_array( $plugins ) ) {
return array_diff( $plugins, array( 'wpemoji' ) );
} else {
return array();
}
}

这功能用户一般用不上,我们就禁止掉。
第二、本地化设置
WordPress 在有些旧版本浏览器为了兼容显示Emoji 表情图标,它会调用 http://s.w.org/images/core/emoji/72x72/ 目录下的图片渲染Emoji 表情图标。由于网络问题会无法加载。我们可以将这个目录本地化后直接用脚本替换本地化。

//Emoji 本地化 Edit By itbulu.com
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(<br> ':mrgreen:' => "\xf0\x9f\x98\xa2",<br> ':smile:' => "\xf0\x9f\x98\xa3",<br> ':roll:' => "\xf0\x9f\x98\xa4",<br> ':sad:' => "\xf0\x9f\x98\xa6",<br> ':arrow:' => "\xf0\x9f\x98\x83",<br> ':-(' => "\xf0\x9f\x98\x82",<br> ':-)' => "\xf0\x9f\x98\x81",<br> ':(' => "\xf0\x9f\x98\xa7",<br> ':)' => "\xf0\x9f\x98\xa8",<br> ':?:' => "\xf0\x9f\x98\x84",<br> ':!:' => "\xf0\x9f\x98\x85",<br> );<br> $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;<br> $wpsmilies = array_unique($wpsmiliestrans);<br> foreach($wpsmilies as $alt => $src_path){
$emoji = str_replace(array('&#x', ';'), '', wp_encode_emoji($src_path));
$output .= '<a class="add-smily" data-smilies="'.$alt.'"> }

我们需要在主题目录下创建/72x72/目录,然后将对应的表情表下载到这个目录中。


扫描二维码,在手机上阅读!