新潟県妙高市を拠点とする、ホームページと広告の相談相手

MENU [+]閉じる [×]
is_category関数とin_category関数の違い(区別して忘れないための備忘録)

WordPressを用いたサイト制作も、これまでで数多く経験させていただいてきました(*^▽^*)

そんな中で、覚えたつもりでもまた新しいサイトを制作するときに「あれ、どっちだっけ?」となってしまうモノがあるんです。

is_category() と in_category() の区別!!

これはもう「WordPressあるある」みたいなモノのひとつだと思うんです。

備忘録として、is_category()とin_category()の2つの関数について記しておきます。

WordPress関数[is_category()]は主にアーカイブで使用

まず、is_category()の関数は「カテゴリアーカイブかどうか」を判別するための関数です。

つまり「何々のカテゴリに属する記事一覧」の場合にこの処理、そううでない場合はこういう処理、という場合に主に用います(^^)

<?php if (is_category()) { ?>
// カテゴリアーカイブの場合に実行する処理を記述します
<?php } ?>

is_category()関数は、引数も指定できます。

その場合は指定したIDやスラッグに属するアーカイブかどうかの判別になります。

<?php if (is_category('arai')) { ?>
// カテゴリのスラッグが「arai」に属する記事一覧の場合
<?php } elseif (is_category('akakura')) { ?>
// カテゴリのスラッグが「akakura」に属する記事一覧の場合
<?php } elseif (is_category('sekiyama')) { ?>
// カテゴリのスラッグが「sekiyama」に属する記事一覧の場合
<?php } else { ?>
// カテゴリのスラッグが上記以外の記事一覧の場合
<?php } ?>

ちなみに、条件分岐に使った「arai」「akakura」「sekiyama」っていうのは「妙高Web屋」に関連して、新潟県妙高市の地名です。

漢字だと「新井」「赤倉」「関山」です、新潟県の方なら県内ニュースで聞いたことがあるかも(^^)v

さて、そのスラッグは配列にしてまとめることができます。

「arai」「akakura」「sekiyama」で全く同じ処理をするなら、こんな風にまとめても良いのでは?

<?php if (is_category(array('arai','akakura','sekiyama'))) { ?>
// カテゴリのスラッグが「arai」「akakura」「sekiyama」のいずれかに属する記事一覧の場合
<?php } ?>

ちなみに、[is_xxxxx]の形式のWordPressの関数でis_page()っていう関数もありましたよね?

あれは「固定ページかどうか」を判別する関数でしたし、引数でIDやスラッグを指定すれば、それにあたる固定ページかどうかを判別する関数になります。

同様にis_category()は「カテゴリー毎にまとまったページかどうか」を判別するための関数となるわけです(^^)b

WordPress関数[in_category()]は主に個別投稿で使用

一方で、in_category()関数は、個別投稿が引数で指定したIDやスラッグのカテゴリに属するモノかどうかを判別する関数です。

in_category()には基本的に引数を指定して、個別の投稿がそれに属していれば[true]で、属していなければ[false]が戻り値です。

<?php if (in_category('arai')) { ?>
// カテゴリのスラッグ「arai」に属する個別投稿の場合
<?php } elseif (in_category('akakura')) { ?>
// カテゴリのスラッグ「akakura」に属する個別投稿の場合
<?php } elseif (in_category('sekiyama')) { ?>
// カテゴリのスラッグ「sekiyama」に属する個別投稿の場合
<?php } else { ?>
// カテゴリのスラッグが上記以外の個別投稿の場合
<?php } ?>

もちろんin_category()関数も引数の指定に配列が使えます(^^)v

<?php if (in_category(array('arai','akakura','sekiyama'))) { ?>
// カテゴリのスラッグが「arai」「akakura」「sekiyama」のいずれかに属する記事一覧の場合
<?php } ?>

まとめます(*^▽^*)!

is_category() はアーカイブ!!

in_category() は個別投稿!!

これで、次にサイトを作るときまで忘れないといいなぁ……(´⌒`;)

参考にさせていただいた記事

今回の記事は、こちらの記事を参考にさせていただきました。

とっても分かりやすい図説付き!

ありがとうございました。

この記事の感想をお寄せください

[is_category関数とin_category関数の違い(区別して忘れないための備忘録)]の感想を、下記のリンク先の「感想投稿フォーム」よりお気軽にお寄せください。
メールアドレスは不要です。

感想投稿フォームへ

いいね!と思っていただけたらSNSでシェアしてください♪

関連記事一覧:is_category関数とin_category関数の違い(区別して忘れないための備忘録)

WordPressでホームページを制作したことのある方なら「ワードププレスのディレクトリ問題」に直面された方もいらっしゃるかと思います。 WordPres …… 続きを読む

ホームページを作る上で「titleタグ(タイトルタグ)」というものが重要な要素の一つになります。 皆さんがブログを書いている場合は、その投稿画面で入力した …… 続きを読む

シリーズ「妙高Web屋のホントは公表したくないホームページ制作」です。 皆さんはホームページを作りたいとお考えになって、制作業者さんやデザイナーさんといっ …… 続きを読む

Copyright (C) 妙高Web屋 All Rights Reserved.

ページの先頭へ