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が存在しない場合などにnullやWP_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プロパティで取得できる。 - 返り値は
nullやWP_Errorになる場合があるため、参照前にチェックを入れる。 - 名前以外にも、スラッグ・説明・投稿数・親カテゴリーIDなども同じオブジェクトから取得できる。