カテゴリーIDからカテゴリー名を取得したい

WordPressでカテゴリーIDをもとにカテゴリー名を取得するには、get_category()関数を使います。

get_category() の基本的な使い方

get_category()にカテゴリーIDを渡すと、そのカテゴリーの情報をWP_Termオブジェクトとして返します。カテゴリー名はnameプロパティから取得できます。

$cat = get_category( 1 );

if ( $cat && ! is_wp_error( $cat ) ) {
    $cat_name = $cat->name;
}

get_category()は、IDが存在しない場合などにnullWP_Errorを返すことがあります。そのため、値を参照する前にチェックを入れるのが安全です。

取得できる主なプロパティ

get_category()が返すオブジェクトには、カテゴリー名以外にも以下の情報が含まれています。

  • name — カテゴリー名
  • slug — スラッグ
  • description — カテゴリーの説明
  • count — 投稿数
  • parent — 親カテゴリーのID(なければ 0)
  • term_id — カテゴリーID
$cat = get_category( 1 );

if ( $cat && ! is_wp_error( $cat ) ) {
    echo $cat->name;        // カテゴリー名
    echo $cat->slug;        // スラッグ
    echo $cat->description; // 説明
    echo $cat->count;       // 投稿数
}

どんな場面で使うか

カスタムテンプレートで「現在の投稿が属するカテゴリー名を表示したい」「カテゴリーIDをもとに条件分岐したい」といった場面でよく使います。

現在の投稿のカテゴリー名を表示する場合は、get_the_category()の返り値がすでにWP_Termオブジェクトの配列なので、そのままnameプロパティを参照できます。

$cats = get_the_category();

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

まとめ

  • カテゴリーIDからカテゴリー情報を取得するにはget_category()を使う。
  • カテゴリー名は返り値のnameプロパティで取得できる。
  • 返り値はnullWP_Errorになる場合があるため、参照前にチェックを入れる。
  • 名前以外にも、スラッグ・説明・投稿数・親カテゴリーIDなども同じオブジェクトから取得できる。