Web制作 WordPress カテゴリー&タグ

WordPressのカテゴリー情報を表示する方法

2023年10月10日

WordPressのカテゴリー情報は、どうやって表示すればいいの?

WordPressのカテゴリー情報は、Webサイト上のいろいろな所で表示が必要となります。

今回は、ケース別に分けてカテゴリー情報の表示方法をご紹介していきます。

すべてのカテゴリー情報を表示する方法(主にfront-page.php、home.phpなど)

すべてのカテゴリー情報を表示するには、get_categories関数を使用します。
以下のコードを使用すると、すべてのカテゴリーの一覧を表示できます。

<ul class="category__items">
  <?php
  // カテゴリーの内容を配列で取得し、カテゴリー名を表示させる。必要に応じて、->cat_ID や ->slug の表示もできる
  $categories = get_categories();
  if ($categories) :
    foreach ($categories as $category) : ?>
      <li class="category__item">
        <a class="category__link" href="<?php echo esc_url(get_category_link($category->term_id)); ?>"><?php echo $category->name; ?></a>
      </li>
    <?php endforeach; ?>
  <?php endif; ?>
</ul>

このコードでは、get_categories関数を使用してすべてのカテゴリーを取得し
foreachループを使用して、そのカテゴリーページへのリンクとカテゴリーの名前を表示しています。

get_categories関数の詳細はこちら(WordPress 私的マニュアルさんより)

https://elearn.jp/wpman/function/get_categories.html

条件を指定してカテゴリー情報を表示する方法

次に条件を指定してカテゴリー情報を表示するには、get_categories関数の引数に条件を指定します。

今回は通常の投稿に属するカテゴリのみを取得し、更にそこから細かく条件をつけて表示させていきます。

<?php
$args = array(
  'type' => 'post', // 通常の投稿に属するカテゴリーのみ取得
  'parent' => 0, // 親カテゴリーのみ取得
  'orderby' => 'count', // カテゴリーの記事数に応じて表示
  'order' => 'DESC', // 'count'の多い順(降順)に表示
  'number' => '20' // 上位20件を表示(上限を指定)
);

$categories = get_categories($args);
if ($categories) : ?>
  <ul class="category__items">
    <?php foreach ($categories as $category) : ?>
      <li class="category__item">
        <a class="category__link" href="<?php echo esc_url(get_category_link($category->term_id)); ?>"><?php echo esc_html($category->name); ?></a>
      </li>
    <?php endforeach; ?>
  </ul>
<?php endif; ?>

このコードを実行することにより、指定された条件に合ったカテゴリーのみが表示されます。

投稿に属するカテゴリー情報をすべて表示する方法(single.phpなど)

投稿に属するカテゴリー情報をすべて表示するには、get_the_category関数を使用します。

以下のコードを使用すると、現在の投稿に属するすべてのカテゴリー情報を表示できます。

<?php
$categories = get_the_category();
if ($categories) : ?>
  <ul class="category__items">
    <?php foreach ($categories as $category) : ?>
      <li class="category__item">
        <a class="category__link" href="<?php echo esc_url(get_category_link($category->term_id)); ?>"><?php echo $category->name; ?></a>
      </li>
    <?php endforeach; ?>
  </ul>
<?php endif; ?>

このコードでは、get_the_category関数を使用して現在の投稿に属するカテゴリー情報を取得し、foreachループを使用してカテゴリーの名前を表示しています。

get_the_category関数の詳細はこちら(WordPress 私的マニュアルさんより)

https://elearn.jp/wpman/function/get_the_category.htm

投稿に属するカテゴリー情報を1つだけ表示する方法

上記のコードでは、投稿に属するカテゴリーがすべて出力されてしまいます。
カテゴリーの出力は1つだけで良いよという場面もあるかと思うので、その時は以下のコードで

<?php
$categories = get_the_category();
if ($categories) : ?>
  <a class="category__link" href="<?php echo esc_url(get_category_link($categories[0]->term_id)); ?>"><?php echo $categories[0]->name; ?></a>
<?php endif; ?>

先程のコードと異なる点は、
 ・foreachでのループ出力が不要
 ・$categories[0] でカテゴリーを1つのみ取得

親子カテゴリーを表示する方法については、以下の記事で紹介しています。

あわせて読みたい
  • この記事を書いた人

はぎ

43歳からWeb制作開始|フリーランス2年目| 税理士・公認会計士を目指すも挫折、27歳でトヨタ系自動車部品工場に勤務| 管理業務に関わるなか、ExcelVBAからプログラミングに目覚める| 現在は兼業コーダーとしてクラウドソーシング・制作会社からのお仕事をさせて頂いております| 時間と場所に縛られないライフスタイルを目指し鬼労働中| 柴犬好き🐕‍🦺

-Web制作, WordPress, カテゴリー&タグ