【WordPress】カテゴリ名・タグ名・タクソノミ名を取得してアーカイブページのタイトルにする
記事更新日:2022-09-15

アーカイブページ
に
タイトル付けたい
に
タイトル付けたい
get_queried_object()
現在クエリされているオブジェクトを取得します
get_queried_object|すべて取得できる

たとえば、カテゴリ名やタグ名をタイトルにしたいとき
<? php
$query_object = get_queried_object();
$name = $query_object->name;
?>
<main>
<h1><?php echo $name; ?></h1>
~~ ループ処理 ~~
</main>

ただし、子カテゴリまで取得したい場合には条件分岐が必要
子カテゴリを判別したい場合

「投稿タイプで、かつタグではない」という指定
if ($obj && get_post_type() === 'post' && !is_tag() && $obj->parent === 0) {
// postで親カテゴリの場合
$name = $obj->cat_name;
} else {
// それ以外
$name = $obj->name;
}

別々で取得するのは、さらに面倒
種類別に、条件分岐する場合
<? php
// カテゴリ一覧の場合
if (is_category()) {
$cat = get_the_category();
$name = $cat[0]->name;
// タグ一覧の場合
} elseif (is_tag()) {
$tags = get_the_tags();
$name = $tags[0]->name;
}
?>

これだと、カスタム投稿のカテゴリ名が取得できない
2022-09-15
編集後記:
この記事の内容がベストではないかもしれません。