こんにちは。
情報サイトを作った時に、グローバルメニューにカテゴリー別記事一覧のリンクを作りました。
リンクはOKなのですが一覧ページのカテゴリー表示名にリンクとは違うカテゴリー名が表示されず困ったのでメモしておきます。
投稿記事に複数カテゴリーが設定されており、どうやら get_the_category(); だけでは最新記事の最初のカテゴリーが表示されるようでした。
やりたいこと
- 記事には複数のカテゴリーを設定
- WordPressのメニュー設定でカテゴリー別のリンクを設置
- 記事一覧にリンクと同じカテゴリー・タグ名をリンクなしで表示
対処としては、以下のphpを追加しました。
$current_cat = get_queried_object();
$cat_title = $current_cat->name;
改善前
<?php get_header();?>
<?php
$cat = get_the_category();
$cat_name = $cat[0]->cat_name;
$cat_slug = $cat[0]->category_nicename;
?>
<div class="archive_title">
<h1><?php echo $cat_name ;?></h1>
</div>
改善後
<?php get_header();?>
<?php
$current_cat = get_queried_object();
$cat_title = $current_cat->name;
$cat = get_the_category();
$cat_name = $cat[0]->cat_name ;
$cat_slug = $cat[0]->slug ;
?>
<div class="archive_title">
<h1 class="container"><?php echo $cat_title ;?></h1>
</div>
これで記事一覧の表示がパーマリンクと一致してくれました。