【WordPress】カテゴリーで条件分岐させて色々する方法

wordpress
この記事は約5分で読めます。

WordPressで特定のカテゴリーのみに特定の要素を表示させたりCSSを読み込ませたりしたいんだけどどうしたら良いかにゃ〜?
にゃんこにも分かるように教えて欲しいにゃ〜

という疑問にお答えします。

とっちゃん@nyanco! です。

このところ公私ともにWordPressにどっぷりなとっちゃんです。

できることが増えてくるとどんどん楽しくなってきますね〜!

さて今回は、特定のカテゴリーの記事にだけ特定のhtmlを出力するまたCSSを読み込ませるなど、条件分岐させる技の備忘録です。

スポンサーリンク

WordPressで条件分岐させる方法

早速ですが、カテゴリースラッグが「test」という場合の条件分岐文がこちら。

<?php if( in_category('test') ) : ?>
<!-- カテゴリー「test」のページにのみ適用 -->
〜htmlを記述
<?php else: ?>
<!-- カテゴリー「test」以外のページに適用 -->
〜htmlを記述(空白でもOK!)
<?php endif; ?>

例では「test」という「カテゴリースラッグ」ですが、「カテゴリーID」でもOKです!

▼スラッグは「投稿」→「カテゴリー」から確認できます。

「カテゴリーID」は、先程の画面から任意のカテゴリーをクリックし、ページ遷移先URLの中のtag_ID=●●で確認できます。

▼下記だと「カテゴリーID」は「10」となります。

ただの数字の「ID」より、スラッグ名の方が後から見ても分かりやすいので私は「スラッグ」を使用するようにしています。

複数のカテゴリーを指定したい時

複数カテゴリーの指定も簡単です。

<?php if ( in_category(array('test','photo','poem')) ) : ?>
<!-- カテゴリー「test」「photo」「poem」のページにのみ適用 -->
〜htmlを記述
<?php else: ?>
<!-- カテゴリー「test」「photo」「poem」以外のページに適用 -->
〜htmlを記述(空白でもOK!)
<?php endif; ?>

1行目に array というのが加わって、その後ろに適用させたいカテゴリーの「スラッグ」を ' 'で挟みながら,で区切って記述するだけです。

※ちなみに、カテゴリーには「親カテゴリー」「小カテゴリー」という概念がありますが、「親カテゴリー」を指定したらその「小カテゴリー」にも適用されるわけではないようです。

カテゴリーごとに条件分岐させたい時

カテゴリーごとに細かく条件分岐させるのも簡単です。

<?php if ( in_category(array('test')) ) : ?>
<!-- カテゴリー「test」のページにのみ適用 -->
〜htmlを記述
<?php elseif ( in_category(array('photo','poem')) ) : ?>
<!-- カテゴリー「photo」「poem」のページにのみ適用 -->
〜htmlを記述
<?php else: ?>
<!-- カテゴリー「test」「photo」「poem」以外のページに適用 -->
〜htmlを記述(空白でもOK!)
<?php endif; ?>

4行目の elseif(〜) という命令文を追加して条件を増やしているだけです。
この要領でいくらでも条件分岐を増やすこともできます。

javascript や CSS の条件分岐読み込みもできる

先程の例は html の出力でしたが、script や CSS の読み込みも条件分岐できます。

記述の仕方は全く同じです。

<?php if( in_category('test') ) : ?>
<!-- カテゴリー「test」のページにのみ適用 -->
<link rel="stylesheet" href="〜/test.css" type="text/css" />
<?php else: ?>
<!-- カテゴリー「test」以外のページに適用 -->
<link rel="stylesheet" href="〜/style.css" type="text/css" />
<?php endif; ?>

上記例だと、カテゴリー「test」ページは「test.css」というCSSが読み込まれ、「test」以外のページは「style.css」が読み込まれるということになります。

カテゴリーで CSS や script が異なっている場合、余計なものを読み込まなくできるので、表示速度アップにつながりそうですね!

※script を記述する場合、script閉じタグ(</script>)までを条件分岐文内に収めるようにしましょう!
この閉じタグ忘れで表示が崩れ、小一時間くらい悩みました… ^^;

phpファイルならどこに記述してもOK

通常なら html出力する記述は bodyタグの中、javascript や CSS の読み込みは headタグの中と決まってますが、phpファイルは、phpタグ(<?php と ?>)で囲まれた箇所を探して実行してくれるので、どこに記述しても大丈夫です。

phpって便利ですねー!! ←まだまだ触りしか分かってない ^^;

おわりに

条件分岐と聞くと小難しそうですが、基本コピーペストするだけだし、仕組みが分かると結構複雑なこともできちゃうので、これはできることの幅がとっても広がりそうです!

本記事がどなたかの参考になれば幸いです。

今回は以上となります。
最後まで読んでいただきましてありがとうございました!
それではまた〜✧٩(ˊωˋ*)و✧

コメント