移除WordPress-4.7.5自动加载的emoji脚本

WordPress 4.2版本之后,查看网页源代码你会发现WordPress会自动在加载一段用于支持emjo表情的脚本(JS+CSS)。对于大部分人来说,这个是十分鸡肋的功能,反而影响加载速度,仔细观察一下就会发现,这部分功能引入了非常多的脚本以及代码,实际上绝大部分人从来不使用这部分功能,另外这部分加载脚本在Internet Explorer 11 + HTTPS的时候,会出现警告访问不安全的内容,原因就在于emjo加载脚本在HTTPS的情况下依旧会使用HTTP去请求数据。


WordPress 4.7.5使用的主题,或者子主题的functions.php文件的最下面增加如下代码:

<?php
	/**
	* 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();
		}
	}

	/**
	* 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' );

?>

如果使用了WP SuperCache的话,需要删除一次缓存,否则短时间内代码无法生效。

参考链接


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

发布者

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注