wordpressでカテゴリID取得

シングルページやアーカイブページで現在属するカテゴリーのオブジェクトを取得する方法。

wp_head()実行時にget_current_category()を実行

add_action('wp_head', 'get_current_category');

function get_current_category(){
global $_curcat;
$cate = null;
if( is_category() ) {
//カテゴリー表示だったら
$now_cate = get_query_var('cat');
$cate = get_category($now_cate);
} else if (is_single() ) {
//シングルページ表示だったら
$cates = get_the_category();
$i = 0;
$use_category = 0;
foreach ($cates as $cate) {
//未分類を除外した配列の一番初めのカテゴリを選択
if($cate->category_parent > 0 && $use_category == 0) {
$use_category = $i;
}
$i++;
}
$cate = $cates[$use_category];
}
//カテゴリーのオブジェクトごと保持
$_curcat = $cate;
return $cate;
}

呼び出し方

$cate=get_current_category();
var_dump($cate);

■自記事のカテゴリID取得

foreach((get_the_category()) as $cate) {
eturn $cate->cat_ID;
}

■親カテゴリーIDの取得

$cate = get_the_category();
$cate = $cate[0];
$parent_cat = $cate->category_parent;

■親カテゴリー名の取得

$cat_id=$cate[0]->category_parent;
$parent=&get_category($cat_id);
$parent_catname=$parent->cat_name;

HTML5