WordPress
親カテゴリーの情報が子カテゴリーの情報に・・・

header.phpでシックハック!!
今までget_the_category()で情報を採っていたのですが、
親カテゴリーページの情報がなぜか子カテゴリーの情報になってしまう・・・
一日考えても埒が明かず。
get_the_category()の変わりにget_queried_object_id()を使用することに。
あっという間に解決しました♪

get_the_category()の場合
<?php if(is_category()|| is_single()){
	$category = get_the_category();//投稿データのカテゴリー情報を取得する。
	if(isset($category, $category[0])) {
		$cat_id =  $category[0]->term_id;
		$cat_name = $category[0]->cat_name;
		//$cat_slug = $category[0]->category_nicename;
		$cat_slug = $category[0]->slug;
		$cat_description = $category[0]->category_description;	
		$cat= $category[0];
		$parent_id= $category[0]->category_parent;// 親カテゴリーのID取得
		// 親カテゴリーがあったら
		 if ( $parent_id != 0 ) { 
			  $parent_category_id = $parent_id;
			  $parent_category = get_term_by( 'id', $parent_category_id, 'category' );
			  if ( $parent_category ) {
				$parent_category_slug = $parent_category->slug;
			  }
    	}
  }	
}
?>
get_queried_object_id()の場合
 $cat = get_queried_object_id(); // 現在のカテゴリーを取得
 $current_category = get_category( $cat ); // 現在のカテゴリーオブジェクトを取得
 $cat_slug = $current_category->slug; // 現在のカテゴリースラッグ
 $cat_id = $current_category->term_id; // 現在のカテゴリーID取得
 $cat_name = $current_category->name;  // 現在のカテゴリーの名前を取得
 $cat_description = $current_category->description;// 現在のカテゴリーの説明を取得 
// 親カテゴリーがある場合
 if ( $current_category->parent ) { 
  $parent_category = get_category( $current_category->parent );
  $parent_id = $parent_category->term_id;  //親カテゴリーID取得
  $parent_name = $parent_category->name;  //親カテゴリーの名前取得
  $parent_slug = $parent_category->slug; //親カテゴリーのスラッグ取得
 }
}
親カテゴリーがあった場合
<?php if($current_category->parent):?>
・・・親カテゴリーのある場合
<?php endif; ?>

Memorandum

ホームページのことならCarry@Company

folder_open Archive