古いバージョンのIE対応に関する条件分岐

古いバージョンのIE(Internet Explorer)にHTML5を認識させるというhtml5.jsというものを、みなさまご利用でしょうか?WordPressでもそうでなくても、もういらないのでは?と思いつつさよならできない私です。

header.phpに書くしかなかったあのころ

WordPressのテーマを作るにあたって、
クライアントがIE9未満のバージョンであったなら、header.phpに以下を記述する。

<!--[if lt IE 9]>
<script src="<?php echo esc_url( get_template_directory_uri() ); ?>/js/html5.js"></script>
<![endif]-->

実際にはもう必要ないかと思われるものの、公式のtwentyなんとかのテーマにも相変わらずこのように書いてある。

本来テーマでjsフアイルを利用する場合は、functions.phpにてwp_enqueue_script()で追加するのが正しい。
とはいえ、「IE9未満だったら?」というような条件分岐ができないため、この部分はheader.phpにハードコーディングするしか方法がなかったのだ。
「ハードコーディングだめ!」「wp_enqueue_script()使って!」とテーマレビューで何度か指摘されたこともある。そうはいうけれど、twentyなんとかのテーマだってこう書いてあるし、他に方法ないもんね?とほっておくとレビューを通ったりするものだった。

ie

wp_enqueue_script()で対応できるようになっていた

さすがにhtml5.jsはもういらないのでは?
と最新版のtwentysixteenをチェックしてみると・・・まだあった〜
しかし呼び出し元はheader.php ではなく、functions.phpに書いてある。

wp_script_add_data()という関数がWordPress4.2から使えるようになっていて、これでjsファイルを読み込む条件を指定できるようだ。
ちなみにcssの場合は、wp_style_add_data()という関数が以前から用意されていた。

Internet Explorer のサポートポリシー

最近のIE事情はというと、Windowsのバージョンにより最新版しかサポートされないことになっている。
» Internet Explorerのサポートポリシーが変わりました

Windows VistaでのIE9が最低条件だ。
やはりhtml5.jsはいらない子?
と思いつつ、せっかくだからwp_script_add_data()を使ってみよう。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください