问题描述
所以 WP 4.2 引入了 emojis(笑脸),它基本上添加了 JS 和其他垃圾遍及你的页面。有些人可能会感到震惊。如何完全清除所有这些实例?
最佳解决方案
我们将钩入 init
并删除如下操作:
function disable_wp_emojicons() {
// all actions related to emojis
remove_action( 'admin_print_styles', 'print_emoji_styles' );
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_filter( 'wp_mail', 'wp_staticize_emoji_for_email' );
remove_filter( 'the_content_feed', 'wp_staticize_emoji' );
remove_filter( 'comment_text_rss', 'wp_staticize_emoji' );
// filter to remove TinyMCE emojis
add_filter( 'tiny_mce_plugins', 'disable_emojicons_tinymce' );
}
add_action( 'init', 'disable_wp_emojicons' );
我们将需要以下过滤功能来禁用 TinyMCE emojicons:
function disable_emojicons_tinymce( $plugins ) {
if ( is_array( $plugins ) ) {
return array_diff( $plugins, array( 'wpemoji' ) );
} else {
return array();
}
}
现在我们呼吸,假装这个功能从来没有添加到核心… 特别是在解决了大量的 bug 的时候,yet 被实现。
这可以作为一个插件 Disable Emojis 。
或者,您可以使用 Classic Smilies 将以前版本的 WordPress 的原始版本替换为表情符号。
Update
我们也可以通过在过滤器 emoji_svg_url
上返回 false 来删除 DNS 预取 (感谢 @yobddigi):
add_filter( 'emoji_svg_url', '__return_false' );
次佳解决方案
如果你想禁用这个更好的解决方案:使用一个插件。
与克里斯汀的评论相同的代码:https://wordpress.org/plugins/disable-emojis/
相同的代码,也修复了表情符号是旧的:https://wordpress.org/plugins/classic-smilies/
资料来源:我,因为我写的那个代码在第一位。 https://plugins.trac.wordpress.org/changeset/1142480/classic-smilies
第三种解决方案
这是删除表情符号的简单方式。将下面的代码添加到 function.php
中
remove_action( 'wp_head', 'print_emoji_detection_script', 7 );
remove_action( 'wp_print_styles', 'print_emoji_styles' );
参考文献
注:本文内容整合自 Google/Baidu/Bing 辅助翻译的英文资料结果。如果您对结果不满意,可以加入我们改善翻译效果:薇晓朵技术论坛。