現在の投稿が属しているカテゴリー情報を取得する方法(投稿にカテゴリ情報一覧を表示)





get_the_category() 関数を使います。

下記の関数は現在の投稿の末尾に、その投稿が属しているカテゴリの情報一覧を表示する関数です。テーマファイル内functions.phpに記載します。

この関数を改造することで、例えば「カテゴリーのslugが○○なら投稿末尾に△△をつける」みたいな機能を実装できます。

/**
 * 投稿の末尾にカテゴリに関する情報一覧を表示する
 */
function theme_add_category_data($content)
{
    global $post;
    $catList = get_the_category($post->ID);
    if ($catList) {
        foreach ($catList as $catObj) {
            $html = '';
            $html .= '<ul>';
            $html .= '<li>(整数) カテゴリー ID<br>$catObj->term_id= ' . $catObj->term_id . '</li>';
            $html .= '<li>(文字列) カテゴリー名<br>$catObj->name= ' . $catObj->name . '</li>';
            $html .= '<li>(文字列) カテゴリーのスラッグ<br>$catObj->slug= ' . $catObj->slug . '</li>';
            $html .= '<li>(整数) カテゴリーのグループ<br>$catObj->term_group= ' . $catObj->term_group . '</li>';
            $html .= '<li>(整数) カテゴリーのタクソノミー ID<br>$catObj->term_taxonomy_id= ' . $catObj->term_taxonomy_id . '</li>';
            $html .= '<li>(文字列) タクソノミー名 category<br>$catObj->taxonomy= ' . $catObj->taxonomy . '</li>';
            $html .= '<li>(文字列) カテゴリーの説明<br>$catObj->description= ' . $catObj->description . '</li>';
            $html .= '<li>(整数) 親カテゴリーの ID<br>$catObj->parent= ' . $catObj->parent . '</li>';
            $html .= '<li>(整数) カテゴリーに登録されている投稿の数<br>$catObj->count= ' . $catObj->count . '</li>';
            $html .= '<li>(整数) オブジェクト ID<br>$catObj->object_id= ' . $catObj->object_id . '</li>';
            $html .= '<li>(整数) カテゴリー ID (term_id にも同じ値が入る)<br>$catObj->cat_ID= ' . $catObj->cat_ID . '</li>';
            $html .= '<li>(整数) カテゴリーに登録されている投稿の数(count にも同じ値が入る)<br>$catObj->category_count= ' . $catObj->category_count . '</li>';
            $html .= '<li>(文字列) カテゴリーの説明(description にも同じ値が入る)<br>$catObj->category_description= ' . $catObj->category_description . '</li>';
            $html .= '<li>(文字列) カテゴリー名(name にも同じ値が入る)<br>$catObj->cat_name= ' . $catObj->cat_name . '</li>';
            $html .= '<li>(文字列) カテゴリースラッグ名 - カテゴリー名から生成されたスラッグ(slug にも同じ値が入る)<br>$catObj->category_nicename= ' . $catObj->category_nicename . '</li>';
            $html .= '<li>(整数) 親カテゴリーの ID - 親がなければ 0 が入る(parent にも同じ値が入る)<br>$catObj->category_parent= ' . $catObj->category_parent . '</li>';
            $html .= '</ul>';
        }
    }
    return $content . $html;
}
add_action('the_content', 'theme_add_category_data');

逆に、現在の投稿とか関係なくスラッグからカテゴリの情報を取得するときには、 get category_by_slug() 関数を使うといいです。

カテゴリーのスラッグからカテゴリーオブジェクトを取得します。 見つからなければ false を返します。

参照:関数リファレンス/get category by slug




質問・コメントなどあると嬉しいです