get_the_category() の使い方|説明・引数・注意点

説明

get_the_category() は、投稿が属するカテゴリーを配列で取得する関数です。

基本構文

get_the_category( int|false $post_id = false ): WP_Term[]

引数

  • $post_id:投稿ID。省略するとループ中の投稿

戻り値

WP_Term の配列。

使い方(サンプル)

$cats = get_the_category();
if ( $cats ) {
	echo esc_html( $cats[0]->name );
}

注意点

  • 複数のカテゴリーに属していても、順序は保証されません。
  • カテゴリーが無いと空配列が返るので、先に確認します。

実務での使いどころ

  • 投稿が属するカテゴリーを、配列(オブジェクトの配列)で取得するとき。
  • カテゴリー名やスラッグを、リンクなしで表示するとき。

よくあるミスと対処

  • 戻り値は配列なので、そのまま echo できない。$cats[0]->name のように、オブジェクトのプロパティを使う。
  • カスタム投稿タイプのカスタムタクソノミーには使えない。それらは get_the_terms() を使う。
  • 最初のカテゴリーだけが欲しいとき、配列が空でないか確認していない。

NG例

$cats = get_the_category();
echo $cats[0]->name; // カテゴリーが無いと、エラーになる

OK例

$cats = get_the_category();
if ( ! empty( $cats ) ) {
	echo esc_html( $cats[0]->name );
}

使い分け早見表

やりたいこと 使うもの
カテゴリーを配列で取得 get_the_category()
カテゴリーのリンク付きHTMLを出力 the_category()
カスタムタクソノミーのタームを取得 get_the_terms()

関連項目

the_category()、get_the_terms()

公式リファレンス:get_the_category() | Function | WordPress Developer Resources

コメント

タイトルとURLをコピーしました