今、ブログを始めようとしている方、
今なら、ConoHaサーバーの「WINGパックプラン」が最大55%OFF!
「1,452円/月」が「643 円/月」の「低コスト」で始められるチャンスとなっております!
お申し込みはこちらから!
ConoHa WINGは国内最速の高性能レンタルサーバーサービスで
初期費用無料、最低利用期間無しでご利用いただけます!
(この記事は2021年11月22日に投稿されました。)
WordPressには、is_category()という関数があり、処理の対象をカテゴリーページのみに設定することができます。
is_category()とは、表示されている「アーカイブ」が、()で指定されたカテゴリーかどうかチェックするWordPress関数であり、カテゴリーページがどうかを判定することができます。
そのため、()にカテゴリーを設定することで、設定したカテゴリーの時だけ文字や画像などを表示させることができます。
また、WordPress関数にはis_categorry()とよく似たin_category()もありますが、使い方や目的が異なりますので注意して下さい。
今回は、WordPressでis_category()で特定のカテゴリーの時だけ表示させる方法について紹介していきます。
is_category()とは
冒頭でも言いましたが、is_category()とは、表示されている「アーカイブ」が、引数で指定されたカテゴリーかどうかチェックするWordPress関数になります。
つまり、カテゴリーページがどうかを判定することができます。
is_category()は、WordPress関数になりますので、PHPファイルですぐに使用することができます。
そして、is_category()で特定のカテゴリーの時だけ処理を行うには下記のようなコードになります。
1 2 3 4 5 | <?php if (is_category(['カテゴリー情報'])) { // 処理内容 } ?> |
is_category()の()に「カテゴリー情報」を設定することで、設定したカテゴリーを指定することで、指定したカテゴリーページのみに処理を行うことができます。
カテゴリー情報は「カテゴリーID」や「カテゴリースラッグ」、「カテゴリー名」でも構いません。
また、is_category()の()に何も指定しないで使用すると全てのカテゴリーが対象になります。
is_category()で特定のカテゴリーの時だけ表示させる方法
ここでは、is_category()で特定のカテゴリーの時だけ表示させる方法について紹介していきます。
カテゴリーIDで特定のカテゴリーの時だけ表示させる場合
カテゴリーIDで特定のカテゴリーの時だけ表示させる場合は、is_category()の()にカテゴリーIDを指定します。
試しに、is_category()にカテゴリーIDを設定して特定のカテゴリーの時だけ表示してみます。
■ category.php
1 2 3 4 5 6 7 8 9 10 11 12 | <?php if (is_category('1')): ?> <div class ="example-div1"> <p>ここの文字は「メンバー紹介」のページだけ表示されています。</p> </div> <?php endif; ?> <style> .example-div1 { height: 500px; font-size: 30px; } </style> |
実行結果
is_category()の()に「1」と設定することでメンバー紹介のカテゴリーページのみに文字が表示されています。
カテゴリー名で特定のカテゴリーの時だけ表示させる場合
カテゴリー名で特定のカテゴリーの時だけ表示させる場合は、is_category()の()にカテゴリー名を指定します。
試しに、is_category()にカテゴリー名を設定して特定のカテゴリーの時だけ表示してみます。
■ category.php
1 2 3 4 5 6 7 8 9 10 11 12 | <?php if (is_category('商品紹介')): ?> <div class ="example-div2"> <p>ここの文字は「商品紹介」のページだけ表示されています。</p> </div> <?php endif; ?> <style> .example-div2 { height: 500px; font-size: 30px; } </style> |
実行結果
is_category()の()に「商品一覧」と設定することで、商品一覧のカテゴリーページのみに文字が表示されています。
カテゴリースラッグで特定のカテゴリーの時だけ表示させる場合
カテゴリースラッグで特定のカテゴリーの時だけ表示させる場合は、is_category()の()にカテゴリースラッグを指定します。
試しに、is_category()にカテゴリースラッグを設定して特定のカテゴリーの時だけ表示してみます。
■ category.php
1 2 3 4 5 6 7 8 9 10 11 12 | <?php if (is_category('furniture')): ?> <div class ="example-div2"> <p>ここの文字は「家具用品」のページだけ表示されています。</p> </div> <?php endif; ?> <style> .example-div3 { height: 500px; font-size: 30px; } </style> |
実行結果
is_category()の()に「商品一覧」と設定することで、商品一覧のカテゴリーページのみに文字が表示されています。
is_category()で特定の複数のカテゴリーの時だけ表示させる方法
is_category()で特定の複数のカテゴリーの時だけ表示させるには()にカテゴリーを配列で設定します。
is_mobile()はPCかスマートフォンのどちらかを区別して処理を行うことができる関数なのですが、自分で関数を作成する必要があります。
しかし、WordPress内の関数にはデバイスを区別して処理を行うことができる「wp_is_mobile()」というものがあります。
■ category.php
1 2 3 4 5 6 7 8 9 10 11 12 | <?php if (is_category(array('news','日常品','メンバー紹介'))): ?> <div class ="example-div1"> <p>ここの文字は「お知らせ」、「日常品」、「メンバー紹介」のページだけ表示されています。</p> </div> <?php endif; ?> <style> .example-div1 { height: 500px; font-size: 30px; } </style> |
実行結果
is_category()の()にカテゴリーを配列で設定することで、特定の複数のカテゴリーの時だけ表示されています。
is_category()とin_category()の違い
WordPressではis_category()でカテゴリーページかどうか判断し、処理を行う関数になりますが、この関数によく似ているin_category()というものがあります。
in_category()は指定したカテゴリーを含んでいるかどうかを判断する関数になります。
そのため、「このページは〇〇のカテゴリーページですか?」と尋ねたとき、「はい」か「いいえ」で返答をくれるのが、is_category()で、
「この記事は〇〇のカテゴリーに属していますか?」と尋ねたとき、「はい」か「いいえ」かで返答をくれるのが、in_category()となります。
試しに、is_category()とin_category()を使って処理の分岐を見てみます。
■ category.php
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | <?php if (is_category('intro')): ?> <div class ="example-div4"> <p>ここの文字は「家具用品」のページだけ表示されています。</p> </div> <?php endif; ?> <?php if (in_category('intro')): ?> <div class ="example-div4"> <p>ここの文字は「家具用品」を含むページに表示されています。</p> </div> <?php endif; ?> <style> .example-div4 { height: 300px; font-size: 30px; } </style> |
実行結果
is_category()で設定した文字列は「家具用品」のカテゴリページのみに表示されていますが、in_category()で設定した文字列は「家具用品」のカテゴリーを含む「日常品」や「家具用品」のカテゴリーページにも表示されています。
また、is_category()とin_category()でどのページで機能するのか比較してみましたので詳しく知りたい方は下記の記事をご参考ください。
カテゴリーページかどうかを判定する関数、is_category()に対してin_category()はカテゴリーを含んでいるページかどうかを判定する関数になります。
そのため、投稿記事ではis_category()ではなく、in_category()が使用できます。
まとめ
⚫︎ is_category()は、表示されている「アーカイブ」が、引数で指定されたカテゴリーかどうかチェックするWordPress関数である
⚫︎ is_category()で特定のカテゴリーの時だけ表示させるには3つの方法がある
・カテゴリーIDで特定のカテゴリーの時だけ表示させる場合
・カテゴリー名で特定のカテゴリーの時だけ表示させる場合
・カテゴリースラッグで特定のカテゴリーの時だけ表示させる場合
⚫︎ is_category()で特定の複数のカテゴリーの時だけ表示させるには()にカテゴリーを配列で設定する
⚫︎ is_category()とin_category()はよく似ているが違いがある
(is_category()はカテゴリーページかどうか判断する関数であるが、in_category()じゃカテゴリーを含んでいるかどうかを判断する関数である)