こんばんは、WordPressの新バージョン4.2がリリースされました。さっそく人柱的にこのブログのWordPressもアップデートしてみましたよ。

WordPress 4.2の新機能に「絵文字」というのがあるのですが、その絵文字用のjavascriptとcssがhtmlのhead部で読み込まれるようになってしまいました。Webページの表示速度を遅くしたくないので、余計なjavascriptやcssは呼びたくないですよね。解決方法もわかりましたよ。

追記・・・WordPress 4.2にアップデートしてから、Twitterのツイート(絵文字あり)を埋め込んでいる特定の記事について、管理画面の「投稿の編集」で文字を入力するのに2~3秒かかってしまい、非常に重くなりました。4.2にアップデートするのはもう少し様子を見てからのほうがいいかもしれませんね。英語版のフォーラムは賑わっているようですよ笑。

追加されたjavascriptとcss

WordPress 4.2にアップデートした後に、ブログにアクセスして、ブラウザでソースを表示するとわかりますが、以下の様なjavascriptとcssがhtmlのhead内(titleタグの下ぐらい)に勝手に挿入されてしまっていると思います。

<script type="text/javascript">
window._wpemojiSettings = {"baseUrl":"http://s.w.org/images/core/emoji/72x72/","ext":".png","source":{"concatemoji":"http://【ドメイン名】/wp-includes/js/wp-emoji-release.min.js?ver=4.2"}};
!function(a,b,c){function d(a){var c=b.createElement("canvas"),d=c.getContext&&c.getContext("2d");return d&&d.fillText?(d.textBaseline="top",d.font="600 32px Arial","flag"===a?(d.fillText(String.fromCharCode(55356,56812,55356,56807),0,0),c.toDataURL().length>3e3):(d.fillText(String.fromCharCode(55357,56835),0,0),0!==d.getImageData(16,16,1,1).data[0])):!1}function e(a){var c=b.createElement("script");c.src=a,c.type="text/javascript",b.getElementsByTagName("head")[0].appendChild(c)}var f;c.supports={simple:d("simple"),flag:d("flag")},c.supports.simple&&c.supports.flag||(f=c.source||{},f.concatemoji?e(f.concatemoji):f.wpemoji&&f.twemoji&&(e(f.twemoji),e(f.wpemoji)))}(window,document,window._wpemojiSettings);
</script>
<style type="text/css">
img.wp-smiley,
img.emoji {
display: inline !important;
border: none !important;
box-shadow: none !important;
height: 1em !important;
width: 1em !important;
margin: 0 .07em !important;
vertical-align: -0.1em !important;
background: none !important;
padding: 0 !important;
}
</style>

使っていない機能のjavascriptを実行するのはやめてほしい・・・。せめて管理画面から選択できるようにしてほしいですよね。

絵文字用のjavascriptとcssを呼ばないための解決方法

英語ですが、WordPress公式のフォーラムに以下の記事があったので、参照してみました。
WordPress › Support » Emoji and smiley js and css added to head

使っているテーマのfunctions.phpに以下の記述を追記すると削除できるとのことです。

remove_action( 'wp_head', 'print_emoji_detection_script', 7 );
remove_action( 'wp_print_styles', 'print_emoji_styles' );

このブログでもさっそく上記の2行をfunctions.phpに追記してみました。ソースを表示しても、絵文字用のjavascriptとcssを呼ぶ記述はなくなりました。これでブログの表示速度も遅くならずに済みそうです。