【WordPress】is_category()で特定のカテゴリーの時だけ表示させる!

【WordPress】is_category()で特定のカテゴリーの時だけ表示させる!のアイキャッチ

(この記事は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()で特定のカテゴリーの時だけ処理を行うには下記のようなコードになります。

is_category()の()に「カテゴリー情報」を設定することで、設定したカテゴリーを指定することで、指定したカテゴリーページのみに処理を行うことができます。

カテゴリー情報は「カテゴリーID」や「カテゴリースラッグ」、「カテゴリー名」でも構いません。

また、is_category()の()に何も指定しないで使用すると全てのカテゴリーが対象になります。

is_category()で特定のカテゴリーの時だけ表示させる方法

ここでは、is_category()で特定のカテゴリーの時だけ表示させる方法について紹介していきます。

カテゴリーIDで特定のカテゴリーの時だけ表示させる場合

カテゴリーIDで特定のカテゴリーの時だけ表示させる場合は、is_category()の()にカテゴリーIDを指定します。

試しに、is_category()にカテゴリーIDを設定して特定のカテゴリーの時だけ表示してみます。

■ category.php

実行結果

カテゴリーIDで特定のカテゴリーの時だけ表示させた結果

is_category()の()に「1」と設定することでメンバー紹介のカテゴリーページのみに文字が表示されています。

カテゴリー名で特定のカテゴリーの時だけ表示させる場合

カテゴリー名で特定のカテゴリーの時だけ表示させる場合は、is_category()の()にカテゴリー名を指定します。

試しに、is_category()にカテゴリー名を設定して特定のカテゴリーの時だけ表示してみます。

■ category.php

実行結果

カテゴリー名で特定のカテゴリーの時だけ表示させた結果

is_category()の()に「商品一覧」と設定することで、商品一覧のカテゴリーページのみに文字が表示されています。

カテゴリースラッグで特定のカテゴリーの時だけ表示させる場合

カテゴリースラッグで特定のカテゴリーの時だけ表示させる場合は、is_category()の()にカテゴリースラッグを指定します。

試しに、is_category()にカテゴリースラッグを設定して特定のカテゴリーの時だけ表示してみます。

■ category.php

実行結果

カテゴリースラッグで特定のカテゴリーの時だけ表示させた結果

is_category()の()に「商品一覧」と設定することで、商品一覧のカテゴリーページのみに文字が表示されています。

is_category()で特定の複数のカテゴリーの時だけ表示させる方法

is_category()で特定の複数のカテゴリーの時だけ表示させるには()にカテゴリーを配列で設定します。

is_mobile()はPCかスマートフォンのどちらかを区別して処理を行うことができる関数なのですが、自分で関数を作成する必要があります。

しかし、WordPress内の関数にはデバイスを区別して処理を行うことができる「wp_is_mobile()」というものがあります。

■ category.php

実行結果

is_category()で特定の複数のカテゴリーの時だけ表示させた結果

is_category()の()にカテゴリーを配列で設定することで、特定の複数のカテゴリーの時だけ表示されています。

is_category()とin_category()の違い

WordPressではis_category()でカテゴリーページかどうか判断し、処理を行う関数になりますが、この関数によく似ているin_category()というものがあります。

in_category()は指定したカテゴリーを含んでいるかどうかを判断する関数になります。

そのため、「このページは〇〇のカテゴリーページですか?」と尋ねたとき、「はい」か「いいえ」で返答をくれるのが、is_category()で、

「この記事は〇〇のカテゴリーに属していますか?」と尋ねたとき、「はい」か「いいえ」かで返答をくれるのが、in_category()となります。

is_category()とin_category()の違い

試しに、is_category()とin_category()を使って処理の分岐を見てみます。

■ category.php

実行結果

is_category()とin_category()の違い

is_category()で設定した文字列は「家具用品」のカテゴリページのみに表示されていますが、in_category()で設定した文字列は「家具用品」のカテゴリーを含む「日常品」や「家具用品」のカテゴリーページにも表示されています。

また、is_category()とin_category()でどのページで機能するのか比較してみましたので詳しく知りたい方は下記の記事をご参考ください。

Sossy

カテゴリーページかどうかを判定する関数、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()じゃカテゴリーを含んでいるかどうかを判断する関数である)

コメントを残す

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