WordPressのカテゴリ情報を取得する方法
WordPressに登録されたカテゴリはget_the_category();で配列情報として取得されます。記事投稿IDがわかるかどうかでカテゴリの取得方法が違います。
ループ内 | get_the_category(); |
ループ内外 | get_the_category(投稿ID); |
get_the_categoryで取得できる配列データ
項目 | データ型 | 意味 |
term_id | 整数 | カテゴリーID |
name | 文字列 | カテゴリー名 |
slug | 文字列 | カテゴリースラッグ |
term_group | 整数 | カテゴリーグループ |
term_taxonomy_id | 整数 | カテゴリータクソノミーID |
taxonomy | 文字列 | タクソノミー名 =’category’ |
description | 文字列 | カテゴリーの説明 |
parent | 整数 | 親カテゴリーの ID |
count | 整数 | カテゴリーに登録された投稿の数 |
object_id | 整数 | オブジェクトID |
cat_ID | 整数 | term_id と同じ |
category_count | 整数 | count と同じ |
category_description | 文字列 | description と同じ |
cat_name | 文字列 | name と同じ |
category_nicename | 文字列 | slug と同じ |
category_parent | 整数 | parent と同じ |
parent、category_parent は親カテゴリーがない時は”0”になり、親カテゴリがある場合はそのカテゴリIDが値になります。
slug(スラッグ)は、カテゴリー名をURL用に半角小文字の英数字とハイフンのみで記述されます。
taxonomy(タクソノミー)は、分類という意味で、値に’category’が入ります。
wp_termmetaテーブルに登録されたカテゴリ情報を取得する方法
WordPressでは、カテゴリもPOST(記事)と同じように、カスタムフィールドが利用できます。
テーマごとに使われているカスタムフィールドが異なるので、KEYになる値はDBで”wp_termmeta”テーブルを調べてみてください。
Cocoonで設定したカテゴリのアイキャッチ画像を呼び出す場合
Cocoonはカテゴリのカスタムフィールドが設定されているので、参考に呼び出してみます。
DBから取得したい情報の`wp_termmeta`.`meta_key` の値を調べます。
<?php
//表示したいSingle.phpなどのページに記述する
//--------------------------------
//投稿記事のカテゴリ情報を取得
//--------------------------------
$catgory = get_the_category(); //配列で取得
$cat_ID = $catgory[0]->cat_ID;//カテゴリID
$cat_name = $catgory[0]->name;//カテゴリ名
//対象カテゴリIDのカスタムフィールドからアイキャッチ画像を取得
$c_eyecatch = get_term_meta( $cat_ID, 'the_category_eye_catch_url', true );//meta_keyを参照してmeta_valueの値を返す
?>
<img src="<?= $c_eyecatch ; ?>" alt="<?= $cat_name; ?>" >
カテゴリのカスタムフィールドは使い勝手いいので、ぜひ試してみてください。
Cocoonのカテゴリページ
カテゴリページでは、既にカテゴリIDが取得されているので、get_the_category();が不要になります。
Cocoonのテーマでは、IDやタイトルが既に取得済になっています。
$cat_id;//CocoonのカテゴリID