前回の記事「賢威7で記事に「更新日」とカテゴリの横に「タグ」を表示させる方法」の補足記事です。

こちらの記事は、

  • 記事タイトル下のカテゴリーを削除した
  • 理由は記事タイトル上にパンくずリストがあり、入れる必要が無いと判断した

というものでしたが、

  • トップページではパンくずリストが無い
  • カテゴリーページやタグページでは、カテゴリーの親子関係の時に属しているカテゴリーが分かりづらい場合がある

という問題がありましたので、記事ページ以外は記事タイトル下にカテゴリーも表示させる方法をご紹介します。

カテゴリーを呼び出すための関数を設置

まず、記事タイトル下にカテゴリーを表示させるためには、その記事が属するカテゴリーを呼び出さなければなりません。

いろいろな方法があると思いますが、今回は関数を設置して呼び出せるようにしたいと思います。

以下のサイトを参考にしました。

参考WordPress 投稿のカテゴリーリンクを表示したい場合

子テーマの「functions.php」に関数を設置する

当サイトは賢威の子テーマで運用しています。そのため、子テーマディレクトリの「functions.php」に以下を追記します。

//カテゴリーリンクを取得
function get_post_category_link($post_id) {

//カテゴリーリスト
$my_cats = get_the_category($post_id);

if ($my_cats) {

$cats_cnt = 0;
foreach ($my_cats as $my_cat) {

if ($cats_cnt > 0) {
echo '';
}

$cat_link = get_category_link($my_cat->cat_ID);

echo '<a href="' . $cat_link . '">' . $my_cat->name .'</a>';

$cats_cnt++;
}
}

}

子テーマの「cont.php」を修正

修正前

<div class="time-cat-tag-box">
<span class="post-date"><time datetime="<?php the_time('Y-m-d'); ?>" itemprop="datePublished" content="<?php the_time('Y-m-d'); ?>" ><?php the_time(get_option('date_format')); ?></time></span><?php if (get_the_modified_date()) : ?><span class="post-date2"><?php the_modified_date('Y/m/d') ?></span><?php endif; ?><?php if (get_the_tags()) : ?><span class="post-tag"><?php the_tags('', ''); ?></span><?php endif; ?>
</div>

修正後

<div class="time-cat-tag-box">
<span class="post-date"><time datetime="<?php the_time('Y-m-d'); ?>" itemprop="datePublished" content="<?php the_time('Y-m-d'); ?>" ><?php the_time(get_option('date_format')); ?></time></span><?php if (get_the_modified_date()) : ?><span class="post-date2"><?php the_modified_date('Y/m/d') ?></span><?php endif; ?><span class="post-category"><?php get_post_category_link($post_id); ?></span><?php if (get_the_tags()) : ?><span class="post-tag"><?php the_tags('', ''); ?></span><?php endif; ?>
</div>

「更新日」と「タグ」の間に以下を追加しただけです。

<span class="post-category"><?php get_post_category_link($post_id); ?></span>

これで、記事ページ以外の「トップページ」「カテゴリページ」「タグページ」で、記事タイトル下に、その記事が属している全てのカテゴリーが表示されます。