今見ている記事(wordpressのデフォルトの投稿など)が属するカテゴリーごとにサイドバーの項目の表示を分けたいときや、バナーの表示を変更するのにも使えます。
get_the_category()で投稿記事のカテゴリ関連の情報を取得
get_the_category:WordPress私的マニュアル
まずは、メンバ変数で必要な要素を取り出せる状態にします。
1
2
|
$cat = get_the_category();
$cat = $cat[0];
|
get_the_category()の()内には投稿のIDが入ります。
が、省略した場合は、現在表示している投稿の情報を取得します。
get_the_category返り値のメンバ変数
ひと通り取り出して、変数に代入してみます。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
$cat_name = $cat–>name; //カテゴリ名
$cat_id = $cat–>cat_ID; //カテゴリのID
$cat_slug = $cat–>slug; //カテゴリのスラッグ
$cat_term = $cat–>term_id; //タームID
$cat_termid = $cat–>term_taxonomy_id; //タクソノミID
$cat_taxonomy = $cat–>taxonomy; //タクソノミ名
$cat_count = $cat–>count; //記事の属するカテゴリの投稿数
$cat_description = $cat–>category_description; //カテゴリのディスクリプション
$parent_id = $cat–>category_parent; //親カテゴリID
$parent = get_category($cat–>category_parent);
$parent_catname = $parent–>cat_name;//親カテゴリ名
|
echo ‘
’ . $cat_name . ‘
’;とかで出力します。
例に使った写真の記事→WEBサイトの背景に使えるテクスチャ素材サイト8+1種!
ここで注意したいのが、タクソノミ名を出力するはずの「$cat_taxonomy = $cat->taxonomy」ですが、今回のように、投稿ページの「カテゴリ」に属する場合、かならず、返り値は「category」になるそうです…
その下の「$cat_id = $cat->cat_ID」には、「WEB」というカテゴリのIDが入っています。タームIDやタクソノミIDも同じになっています。ここは今回の目的では判断材料として使いません。
「WEBカテゴリ」に親カテゴリは無いので、関連の情報は空欄もしくは0と表示されます。
今回はスラッグを使って判断します。
「web-design」カテゴリに属する記事にのみバナーを表示したい場合は、以下のように記述します。
1
|
if( $cat_slug == ‘web-design’ ) {ここに記述~…}
|
実に簡単!
地味な手法ですが、無駄なテンプレートファイルも減ると思うので、細かに使っていきたいものです。
でわ!