まだ記事のないカテゴリを出力する

今回やりたいこと

カテゴリの取得は以下のコードでできますが、この場合投稿済みの記事があるカテゴリしか取得することができません。


<?php
$categories = get_categories();

カテゴリを先に登録しておいて、そのカテゴリの記事はまだないけど、リンクとしてカテゴリ名は出力させたい時もあるかと思います。

今回はそんなときに使えるコードを紹介します。

カテゴリ一覧の取得

$argsを使ってパラメータを指定します。


$args = array(
            'orderby' => 'id',          // ID順に並べる
            'order' => 'asc',           // 昇順に並べる
            'hide_empty' => '0'         // 記事のないカテゴリーも取得
        );
$categories = get_categories($args);

ポイントは「’hide_empty’」です。0を指定することによってまだ記事のないカテゴリーも取得することができます。

取得したカテゴリーを出力

「$categories」に配列でカテゴリーが格納されているのでforeach文などで適宜出力しましょう。


<ul class="l-navi__list">
  <?php foreach ($categories as $category) { ?>
    <li class="l-navi__list__item"><a href="<?php echo get_category_link($category->term_id); ?>"><?php echo $category->name; ?></a></li>
  <?php } ?>
</ul>

今回はナビゲーションとしてカテゴリー一覧を使いたい場合の出力になります。

カテゴリーページのリンクを取得

$category->term_id でリンク先を取得することができます。a要素のhref属性に指定しましょう。

カテゴリー名を取得

$category->name; でカテゴリー名を取得することができます。

related article

2021/01/20 WordPress

年度別アーカイブリンクリスト

2019/10/21 WordPress

カスタムタクソノミーをチェックボックスで表示させる

2020/06/29 WordPress

WordPressの投稿記事のタイトルの文字数を制限する

2020/01/17 WordPress

WordPressマルチサイトの移行