#1 楼
我们将挂接到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表情符号:
function disable_emojicons_tinymce( $plugins ) {
if ( is_array( $plugins ) ) {
return array_diff( $plugins, array( 'wpemoji' ) );
} else {
return array();
}
}
现在,我们喘口气并假装此功能从未添加到内核中……尤其是在尚未实现大量已解决的bug的情况下。
此功能可作为插件使用,禁用表情符号。
或者,您也可以使用Classic Smilies将smilies替换为以前版本的WordPress的原始版本。
更新
我们还可以删除通过在过滤器
emoji_svg_url
上返回false来进行DNS预取(感谢@yobddigi):add_filter( 'emoji_svg_url', '__return_false' );
评论
谢谢!我不确定为什么他们不只是允许人们通过“设置”->“书写”来启用/禁用此功能,但这确实很烦人。 +1
– Howdy_McGee♦
15年4月27日在19:42
期待您在repo或github中的“ Disable emojicons”插件;-)
–birgire
2015年4月27日19:44
已经有几个(这是一个副本)wordpress.org/plugins/classic-smilies wordpress.org/plugins/disable-emojis
– pcarvalho
15年4月28日在17:38
感谢你的回答!我不敢相信这是核心的一部分,至少不是“选择加入”或禁用它的一种方式〜_〜
–phatskat
15年4月29日在21:47
令人震惊的是,他们在标题中添加了甚至没有缩小的114行脚本和样式。谢谢你的插件...
– Debajyoti Das
15年7月22日在12:39
#2 楼
如果要禁用此功能,则是更好的解决方案:使用插件。与Christine的注释中的代码相同:
https://wordpress.org/plugins/disable-emojis/
同样的代码也将表情符号修正为较旧的代码:
https://wordpress.org/plugins/classic-smilies/
来源:我,因为我写过该代码放在首位。
https://plugins.trac.wordpress.org/changeset/1142480/classic-smilies
评论
真好!尽管我通过github条目遇到了这些功能。我已经使用这些插件链接更新了答案。谢谢!
–克里斯汀·库珀♦
2015年4月29日下午1:00
是的,您可能做到了。对于Twitter用户,我也将其放在github上:gist.github.com/Otto42/b79ff5428993fcff45bb
–奥托
15年4月29日在13:07
#3 楼
这是删除表情符号的简单方法。将波纹管代码添加到您的function.php
remove_action( 'wp_head', 'print_emoji_detection_script', 7 );
remove_action( 'wp_print_styles', 'print_emoji_styles' );
评论
我上面的问题已经涵盖了这一点。
–克里斯汀·库珀♦
15年7月22日在12:38
谢谢,这很好地删除了代码-奇怪的是,将其加载到我的functions.php中的页面要比不使用它多花费2到3秒。
–史蒂夫
17年7月21日在12:11
这应该通过init运行。看我的答案。
–克里斯汀·库珀♦
17年8月19日在17:35
#4 楼
如果您想阻止Wordpress将帖子中的老式ASCII表情符号自动转换为Unicode表情符号(例如;-)
至😉
),则可能需要remove_filter('the_content', 'convert_smilies')
(不是100%确保这是什么问题有关,但这解决了我的问题,希望对某些人来说很方便。)
#5 楼
好消息,我添加了一个功能请求:在此处https://core.trac.wordpress.org/ticket/38252
,显然这已被标记为重复
https://core.trac.wordpress.org/ticket/32102
,所以我们可能会期望像
define( 'WP_EMOICONS', false );
< br << />在将来的WordPress版本中。评论
票证#32102似乎已关闭,且无法关闭。 +1表示乐于助人和乐观;-)
–birgire
16-10-7在14:13
ps:据我所知,您的#38252票证已关闭,因为它与#32102票证重复,之前已作为wintfix关闭。因此,看起来插件将不得不在未来几天内解决这个问题;-)因此,为您如此乐观而投票吧;-)
–birgire
16-10-7在14:23
#6 楼
我已经在上面尝试了一些代码,但是对我而言唯一可用的代码就是这个代码。在实现这些代码之前,别忘了备份您的functions.php。
// REMOVE WP EMOJI
remove_action('wp_head', 'print_emoji_detection_script', 7);
remove_action('wp_print_styles', 'print_emoji_styles');
remove_action( 'admin_print_scripts', 'print_emoji_detection_script' );
remove_action( 'admin_print_styles', 'print_emoji_styles' );
评论
您是否正确测试了我的答案中的代码?
–克里斯汀·库珀♦
17年7月10日在7:44
是的,我已经尝试了很多次,站点位于cloudflare-nginx服务器上
–johnhenrygaspay
17年7月10日在8:23
只需仔细检查我的代码即可。将代码添加到functions.php文件时,请尝试设置更高的优先级,例如:add_action('init','disable_wp_emojicons',3);
–克里斯汀·库珀♦
17年7月10日在9:22
#7 楼
由于WordPress表情符号是通过sworg提供的,并且未压缩,因此这会影响SVG加载时间,具体取决于您使用的表情符号数量,甚至可能在Google的PageSpeed Insights工具上引发警告。要修复这个问题,您可以直接从WordPress网站本身提供表情符号,而不必通过js进行外部调用。
这可以通过安装插件Compressed Emoji来实现,该插件可在WordPress.org插件存储库中免费使用。
激活插件后,压缩可节省以下费用:每个表情符号的范围介于3kb〜1.3kb(大约60%)。
来源:WPTavern
评论
当我读到公告时,我感到非常震惊,几乎跌倒在椅子上o_O ... 9_9 ...> :-(