投稿に紐づいているカテゴリー情報を取得します。記事個別ページ(single.php)で投稿が所属するカテゴリー情報を表示するときや、記事一覧ページ(archive.phpやcategory.phpなど)において、各記事の日付やタイトルと同時にカテゴリーも表示するときなどに使うことが多いです。
get_the_category($post_id);| 引数 | 必須/任意 | 引数に指定するもの |
|---|---|---|
| 第1引数 $post_id | 任意 | 投稿のID (数値)初期値: false (初期値では現在の投稿になります) |
戻り値(返す値):条件にマッチしたカテゴリーオブジェクトの配列
取得したカテゴリーオブジェクトを配列として返します。foreachでループを回して配列から1つ1つ要素(タームのオブジェクト)を取り出してタームの名前を取得したりすることができます。
get_the_category()はget_the_terms()のラッパー関数です。get_the_category()の内部でget_the_terms()を実行しています。内部でget_the_terms()を実行する際に、タクソノミーをcategory(投稿に標準実装されているカテゴリー)に自動的に指定しています。
このオブジェクトが持つ主なプロパティ(中身)は以下の通りです。
term_id カテゴリーのIDname カテゴリーの名前slug カテゴリーのスラッグtaxonomy 所属するタクソノミーの名前(= category)description カテゴリーの説明文(管理画面からカテゴリーを追加する際の「説明」欄)count カテゴリーに所属する記事数cat_ID term_idのエイリアスcat_name nameのエイリアスcategory_nicename slugのエイリアスcategory_description descriptionのエイリアスcategory_count countのエイリアス
<?php
$terms = get_the_category();
foreach ($terms as $term) { // 配列からカテゴリーオブジェクトを1つ1つ取り出して処理
echo $term->name; // カテゴリーオブジェクトからかてカテゴリー名を取得して表示
}
?>【引数とは】
テンプレートタグ(=関数)を実行する際に、引数を渡すことができるテンプレートタグがあります。引数は、関数の中で使われるので、渡す引数の値によって実行結果が変わってきます。何を処理したいのか、どのようなデータを取得したいのかによって渡す引数が変わります。
【引数について】
記事個別ページ(single.php)で投稿が所属するカテゴリー情報を表示するときや、記事一覧ページ(archive.phpやcategory.phpなど)において、各記事の日付やタイトルと同時にカテゴリーも表示するときなどに使うことが多いです。具体的なコードは下記「参考コード」を参考にしてください。
下記の例は、single.phpにて記事情報を表示する際に使える参考コードです。公開日の下に記事が所属するカテゴリー情報が表示されます。
<div class="article">
<?php if (have_posts()) : ?>
<?php while (have_posts()) : the_post(); ?>
<div class="article__date">公開日:<?php echo get_the_date('') ?></div>
<?php
$categories = get_the_category();
if (!empty($categories) && !is_wp_error($categories)) {
echo '<div class="article__category">';
foreach ($categories as $category) {
echo '<span>' . $category->name . '</span>';
}
echo '</div>';
}
?>
<?php endwhile; ?>
<?php endif; ?>
</div>※当サイトでは初期値とデフォルト値の言葉の定義を区別せず、原則統一して初期値を採用しています。