【WordPress】 get_the_categoryが機能しない場合の対処方法
こちらの記事は、開発の備忘録として記録しています。
WordPressのget_the_categoryが機能しない状況説明
カテゴリページにてget_the_categoryを使いカテゴリネームを取得→出力しようとしたところ動作しませんでした。category.phpには、loop-blog.phpから、get_template_partを使いインクルードしています。
以下のget_the_categoryを使いましたが、取得できませんでした。
<?php
// カテゴリーのデータを取得
$cat = get_the_category();
$cat = $cat[0];
?>
<?php // カテゴリー名の表示 ?>
<?php echo $cat->cat_name; ?>
代わりに、以下のget_queried_object();の関数を使用し、
get_queried_object();を使うことで、無事出力ができました。
<?php
// カテゴリーのデータを取得
$cat = get_queried_object();
$cat_name = $cat->name;
?>
<?php // カテゴリー名の表示 echo $cat_name; ?>
対処方法、get_queried_objectを使用
get_queried_object();は、現在クエリされているオブジェクトを取得します。例えば:
- 単一投稿ページを表示中なら、投稿オブジェクト。
- 固定ページを表示中なら、固定ページのオブジェクト。
- カテゴリーアーカイブを表示中なら、カテゴリーオブジェクト。
- 投稿者アーカイブを表示中なら、投稿者オブジェクト。
- 等々。
上記は、関数リファレンスから引用
参考になればと思います。