wp_enqueue_script JavaScriptのリンクが出力されない
埼玉県所沢市でホームページ制作などを行っているRishunTradingです。自社テーマ(Rishun)で、Webサイトを制作しています。
「wp_register_script」と、「wp_enqueue_script」を使用する事で、JavaScriptのファイルのリンクを、指定したタイミングでページに出力することができます。
その際に、少しはまった事があったので、備忘録も兼ねて記載しておきます。
1.発生した事象
1 2 3 4 5 | wp_enqueue_script( 'mainscript', get_stylesheet_directory_uri() . '/main.js', array('rishun'), '1.0.0', true ); |
解説
■第1パラメータ
‘mainscript’は、スクリプトを区別するための名前(ハンドル名)。
■第2パラメータ
リンクするスクリプトの場所。='(スクリプトのURL)’。get_stylesheet_directory_uri()は、子テーマのディレクトリのURI。子テーマのJavaScriptファイルのリンクを出力しようとしています。
■第3パラメータ
依存対象のスクリプト。今回rishunテーマ(親テーマ)の”rishun.js”のファイルのリンクを出力した後に出力する必要があるため、親テーマのスクリプトの名前(ハンドル名)を入れています。
■第4パラメータ
本スクリプトのVersionです。
■第5パラメータ
デフォルトは、falseで、falseを指定すると、<head>タグ内にスクリプトのリンクが出力されます。trueにすると、</body>タグの直前に出力されます。表示レスポンスを早くするため、今回trueの遅延読み込みにしています。
詳細はこちらのリファレンスを参照下さい。
wp_enqueue_script
今回、このような指定をした際に、該当の”main.js”のリンクが出力されず、少しはまりました。
2.原因
wp_footer()テンプレートタグの宣言を忘れた事が原因。
わかってしまうと、悲しくなるのですが、第5パラメータで”true”にしていますので、</body>の直前に出力されるわけですが、wp_footer()テンプレートタグの宣言がないため発生。”true”にした場合は、テーマ内の適切な位置に wp_footer() テンプレートタグが含まれていることが必須条件です。
■以下は、リファレンスの内容
– 第5パラメータ($in_footer) –
(真偽値) (オプション) スクリプトは通常 HTML ドキュメントの <head> に置かれるが、もしこのパラメータが true の場合 </body> 終了タグの前に配置される。テーマ内の適切な位置に wp_footer() テンプレートタグが含まれていることが必須となる。
皆さまのお役に立てれば幸いです。
WEB DESIGN全てお任せ!ホームページ制作
RishunTradingでは、日本にはないコンセプトや高いデザイン性をもったヨーロッパ製品の輸入販売、及び、Webサイト制作事業などをおこなっております。
「全てお任せ!ホームページ制作」は、ドメイン取得からサーバー設定、レスポンシブルデザイン(スマホ、タブレット対応)、SEO対策がすべて含まれたお得なホームページを制作するサービス商品です。
運用開始後に「Webサイト運用管理サービス(保守)」と組み合わせて購入しますと、メンテナンス、更新も含めてすべて弊社で実施しますので、お客様は安心して本業に集中する事ができます。
しかもなんと、「全てお任せ!ホームページ制作」は、¥100,000!で提供しております。
本業が忙しい中小企業様に大変ご好評を頂いている商品です。
独自ドメイン取得
サーバー開設&設定
レイアウト設計
レスポンシブルデザイン
(*1)検索エンジン最適化
(SEO対策)場所Maps
お問い合わせフォーム
SSL化
各種SNS連携
運用マニュアル