禁用 emoji 时,后台不能禁用问题的解决
在写第 10 个插件:wp-first 时,发现在 init 时处理下面的代码,后台不会有效果。
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' );
原因就是后台在 init 的时候,emoji 的 js 和 css 还没加上,所以这里移除不起作用,应该在 admin_init 的时候做移除动作。
要加个判断就可以了:
if(is_admin()){
add_action( 'admin_init', 'disable_emojis');
}else{
add_action( 'init', 'disable_emojis');
}
在后台的时候,用 admin_init 处理,网上很多方法都是过期的,可能针对早期的版本有效,请注意识别。
真诚赞赏,手留余香