WordPress の </body> 直前で JavaScript を読み込んではいけない

</body>直前で JavaScript を読み込んではいけない」という言い方は誤解を招くかもしれませんが、様々なところで目にする「JavaScript をフッターで読み込んで高速化」という文面を見て、WordPress の footer.php を開いて本当に </body> 直前で JavaScript を読み込むような記述をしてしまうと良くないことが起こりました。

wp enqueue script でのフッター読み込み指定

</body>タグの直前には<?php wp_footer(); ?>というタグがあるかと思いますが、これの前に書かないと、元々テーマ(functions.php)でフッターで読み込む設定をされていた JavaScript がヘッダーで読み込まれることになりました。

「元々テーマでフッターで読み込む設定をされていた JavaScript」ってなんだ、という話ですが、functions.php で wp enqueue script 関数を使って通常 HTML の<head>でスクリプトを読み込んでいるみたいですが、あるパラメータを指定することでフッターwp_footer()で読み込ませることが出来るようになります。

$in_footer
(boolean) (オプション) スクリプトは通常 HTML ドキュメントの に置かれるが、もしこのパラメータが true の場合 終了タグの前に配置される。テーマ内の適切な位置に wp_footer() テンプレートタグが含まれていることが必須となる。
初期値: false

関数リファレンス/wp enqueue script – WordPress Codex 日本語版

しかし、これが有効なのは「テーマ内の適切な位置にwp_footer() テンプレートタグが含まれていること」らしく、それが恐らく</body>タグの直前で、</body>タグの直前に<?php wp_footer(); ?>が無い場合、パラメータでフッターでの読み込みが指定されていても、結果ヘッダーで読み込まれるようです。

おわり

で、私の場合はそれらを整理し直しましたが、特にページの高速化に寄与しませんでしたとさ。

で、そもそもの話というか、JavaScript ファイルの読み込みをフッターでさせたい場合、footer.php を開いて直接いじるのはあまり美しくないやり方らしいですね。

コメントを残す

  • コメント欄には個人情報を入力しないようにしてください。

  • 入力いただいたメールアドレスは公開されませんがサーバーに保存されます。
  • 入力いただいた情報の他に、IPアドレスを取得させていただきます。取得した IPアドレス はスパム・荒らしコメント対処ために利用され、公開することはありません。

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