print_emoji_styles が WordPress6.4.0 から非推奨になったので、WordPressで絵文字関連のリソースを無効にする方法をアップデート!
?
WordPressでは、WordPress 4.2 からの機能で絵文字関連のスクリプトやスタイルがデフォルトで読み込まれます。これによりOS違いで表示されない絵文字も画像化されて表示されるようになりました。
一方、コーポレートサイト等、絵文字を使用しないサイトでは、headタグ内に自動出力される絵文字関連のスクリプト・スタイルやその機能が邪魔なので、削除して少しでも早くシンプルにしましょう!
ということでお決まりのsnipetですが、wp6.4でprint_emoji_stylesが非推奨になったので、コードを改めて見直しします。
削除用のsnipetは、全ての絵文字が使用できなくなるわけではありません。
非対応の絵文字が画像化処理されずにalt文字で出力されるようになります。文字化けもあるかも。
スマイリーは健在です。(:D⇒ 😀 )
??????
(Android国旗絵文字)
フロントエンド(wp6.4 up)
//headに出力されるインラインスクリプトの無効化
remove_action( 'wp_head', 'print_emoji_detection_script', 7 );
//headに出力されるインラインスタイルの無効化
remove_action( 'wp_print_styles', 'print_emoji_styles' );//wp6.4から非推奨
remove_action( 'wp_enqueue_scripts', 'wp_enqueue_emoji_styles' );
または、ハンドル名wp-emoji-stylesを、
wp_denqueue_styleでキューから削除か、
wp_deregister_styleで登録まで削除するかどうか。
※下位互換のためprint_emoji_stylesは保持されています。
wp_enqueue_emoji_styles関数では、wp_print_stylesに
・print_emoji_stylesがない場合は、何もしません。
・print_emoji_stylesがある場合は、wp_print_stylesからprint_emoji_stylesを削除して、ハンドル名wp-emoji-stylesでインラインスタイルとしてエンキューします。
管理画面(ダッシュボード)
//管理画面headに出力されるインラインスクリプトの無効化
remove_action( 'admin_print_scripts', 'print_emoji_detection_script' );
//管理画面headに出力されるインラインスタイルの無効化
remove_action( 'admin_print_styles', 'print_emoji_styles' );//wp6.4から非推奨
remove_action( 'admin_enqueue_scripts', 'wp_enqueue_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' );
//wp4.6あたりからemoji画像はpngからsvgへ。
//絵文字画像化を無効にする場合は、svgのdns-prefetchも不要なので削除
add_filter( 'emoji_svg_url', '__return_false' ); // s.w.org
参考
What are smilies?
https://wordpress.org/documentation/article/what-are-smilies/
What are Emoji?
https://wordpress.org/documentation/article/what-are-emoji/