テーマ関数を利用する
wordpressの個別記事が属するカテゴリのidやslug名を取得したい場合どうすればよいか。
テンプレートタグには、カテゴリータグというものが用意されており、その中のget_the_category()という関数で取得できる。single.php内に以下のように記述してみると返り値を確認できる。
$cat = get_the_category(); echo "<pre>"; var_dump($cat); echo "</pre>";
戻された値は以下のとおり。
array(1) { [0]=> object(stdClass)#2285 (16) { ["term_id"]=> &string(1) "3" ["name"]=> &string(7) "cakephp" ["slug"]=> &string(7) "cakephp" ["term_group"]=> string(1) "0" ["term_taxonomy_id"]=> string(1) "3" ["taxonomy"]=> string(8) "category" ["description"]=> &string(0) "" ["parent"]=> &string(1) "0" ["count"]=> &string(1) "2" ["object_id"]=> string(2) "58" ["cat_ID"]=> &string(1) "3" ["category_count"]=> &string(1) "2" ["category_description"]=> &string(0) "" ["cat_name"]=> &string(7) "cakephp" ["category_nicename"]=> &string(7) "cakephp" ["category_parent"]=> &string(1) "0" } }
上の結果から、
cat_IDは3であることが把握できる。cat_IDのデータを使って、記事取得関数(get_postsなど)に引数として渡せば、該当カテゴリの記事をだけを取得することができる。