THE ALFEE まとめ

特定のページだけでJavaScriptの読み込みした方がいんでない?

前回、独自に作ったJavaScriptをfooter.phpで読み込むことに成功した初心者まちるだ。

JavaScriptからCSS変数の値書き換えの成功に歓喜する裏側で、

とある迷いが生じていたのだ・・・

 

まちるだ

この前、jsでCSS変数の値の書き換えしたでしょ
はい。iphoneで見たらローズピンク、結構きつめの色でしたね。

ワトソン

まちるだ

まぁ色はjs直せばどうにでもなるからね。それとは別に、もっと重要な問題点が存在していることに、君はお気づきだろうか。
ああ、あのjs、全てのページで読み込まれることですよね。確かにあれは良くない。

ワトソン

まちるだ

あ、あぁ、うん・・・。き、気付いてたんだね、さすが君だね・・・。

PHPの条件分岐を使う

今回の記事は前回の続きとなりますので、先に読んでいただくと内容がわかりやすいかと思います。

 

PHPの条件分岐については、こちらのサルワカさんのページで解説されています。

こちらの、「特定のカテゴリーに属する記事ページのみ」のPHPを使用します!

参考 便利なWordPressの条件分岐16パターン:カスタマイズで活躍するものを厳選!サルワカ

サルワカさんの・・・

<?php if( in_category('カテゴリーID') ) : ?> 
指定したカテゴリーに属する記事でのみ表示するものをココに書く 
<?php else: ?> 
それ以外のページで表示するものをココに 
<?php endif; ?>

この部分、指定したページにだけjsを読み込む記述をすればいいので、

<?php if( in_category('カテゴリーID') ) : ?> 
指定したカテゴリーに属する記事でのみ表示するものをココに書く 
<?php endif; ?>

にして使用しようと思います!

前回、CSS変数を適用させたカテゴリIDは「16」が「モンハン」、「33」が「タガタメ」、「43」が「開発」のカテゴリなので、これらの数字をカテゴリーIDの部分に入れて・・・

<?php if( in_category( array('16','33','43') ) ) : ?> 
指定したカテゴリーに属する記事でのみ表示するものをココに書く 
<?php endif; ?>

になりますね。

さて、2行目に何を入れるかといいますと・・・

PHPでecho を唱える

このPHPのechoという記述、いじっていない状態のバズ部のPHP内にもよく見かける、かなり一般的で重要な記述みたいですね!覚えておこう!

意味は、文字列を出力する という命令文ですね。至極シンプル!

じゃなにを出力しますか?ってことで、前回footer.php部分に記述した部分を出力したい!と。それがこちら。

<script type="text/javascript" src="https://sekkakudakara.com/wp-content/themes/xeory_base-child/myscript.js"></script>

はい。2行目にこれを入れて、それをfooter.phpで上記の一文と差し替えればおっけい!!

 

 

あれ?echo使って無くない?ですと?

よくぞお気づきで・・・せっかくPHP使うなら、もうちょっと工夫しましょうか?

PHPでスタイルシートを読み込むために

ってことで「get_stylesheet_directory_uri」という関数を使用しますぞ!!

ちなみに上記を使用すると、自分でいうと、「https://sekkakudakara.com/wp-content/themes/xeory_base-child」という、使用しているテーマの階層を文字列として取得することができます!

ちなみに、親テーマの方を取得したい場合は、「get_template_directory_uri」にするそうです。

詳しくはこちら

参考 関数リファレンス/get stylesheet directory uriWordPress Codex 日本語版

 

ところでuriってなに?って感じなんですが、こちらはみんなの頼れるヒーロー、WEB担さんでめっちゃわかりやすく説明してくださってます!

参考 URLとURIは何が違うの? どちらが正しい呼び方?Web担当者Forum

 

さてさて。get_stylesheet_directory_uriで階層を取得して、echoで出力するだけ!完成形はこちら!

<?php if( in_category( array('16','33','43') ) ) : ?> 
 <script type="text/javascript" src="<?php echo get_stylesheet_directory_uri(); ?>/myscript.js" ></script>
<?php endif; ?>

こんな感じになりましたよ!

これで特定のカテゴリの記事だけ、jsを読み込むようになります!

 

まとめ

まちるだ

ふむふむ、見えてきたね。
見えてきましたね。年末の例のやつ、間に合いそうですか?

ワトソン

まちるだ

土台はできた。特定のページだけでjsも読み込めるようになったし、応用すればcssも読み込めるね。あとは気合で頑張るだけだ!
クリスマスイブに精神論。

ワトソン

コメントを残す

メールアドレスが公開されることはありません。

CAPTCHA


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