2022.4.16|WordPress

WordPress(ワードプレス)でカテゴリー一覧(カテゴリーリスト)に条件を指定して表示する方法

WordPress(ワードプレス)でカテゴリー一覧(カテゴリーリスト)に条件を指定して表示する方法

WordPress(ワードプレス)では、何かを表示させたい場合や取得する場合に「テンプレートタグ」を利用して表示・取得します。WordPress(ワードプレス)管理画面で設定されたカテゴリーなどをWebページに表示させる場合は、「テンプレートタグ」を使って表示させることができます。

今回は、WordPress(ワードプレス)でカテゴリー一覧(カテゴリーリスト)を表示する方法を解説します。

テンプレートタグとは

WordPress(ワードプレス)では、データベースに取得したデータを出力・表示させるためにテンプレートタグがあります。テンプレートタグは、PHPで記述された関数のことを言います。
WordPress(ワードプレス)には、このPHPで記述された便利なテンプレートタグが数多く用意されています。テンプレートタグを利用することで管理画面で設定した情報・データベースで取得したデータをWebページに出力・表示させることができます。

カテゴリー一覧(カテゴリーリスト)を表示する方法

管理画面で設定したカテゴリー情報を取得してWebページへ表示させるためには、テンプレートファイルにテンプレートタグを記述する必要があります。カテゴリー一覧(カテゴリーリスト)を表示させたい個所にカテゴリー一覧(カテゴリーリスト)用のテンプレートタグを記述します。

「wp_list_categories() 」の基本テンプレートタグ

カテゴリー一覧(カテゴリーリスト)用のテンプレートタグは「wp_list_categories() 」を利用します。

基本テンプレートタグ

※設定しているカテゴリーは全て表示されます。
※書き方は二通りありますのでどちらを記述しても問題ありません。

<?php wp_list_categories( $args ); ?>
<?php 
    $args = array(
	'taxonomy'=> 'category'
    );
    wp_list_categories( $args ); 
?>
出力コード

※基本のテンプレートタグを記述してWebページに出力されるコードです。

<ul>
<li class="cat-item cat-item-1">
<a href="https://kingsite.jp/***">カテゴリー1</a>
<ul class='children'>
<li class="cat-item cat-item-2">
<a href="https://kingsite.jp/***">カテゴリー2</a>
</li>
<li class="cat-item cat-item-3">
<a href="https://kingsite.jp/***">カテゴリー3</a>
</li>
<li class="cat-item cat-item-4">
<a href="https://kingsite.jp/***">カテゴリー4</a>
</li>
</ul>
</ul>

「wp_list_categories() 」のパラメータ(Parameter)

テンプレートタグには、パラメータ(Parameter)という変数を利用することであらゆる条件で出力が出来るようになります。パラメータ(Parameter)の値を渡すことで、出力されるテンプレートタグのプログラムに対して、目的にあった処理を実行することができます。

Webサイトへのログイン時に必要となる「ユーザーID」や「パスワード」など、訪問者を特定する技術においてもパラメータ(Parameter)が活用されています。

カテゴリー一覧(カテゴリーリスト)に利用できるパラメータ(Parameter)で、条件を指定して出力することができます。
※パラメータは、「URLパラメータ」や「クエリパラメータ」とも呼ばれます。

「wp_list_categories() 」のパラメータ(Parameter)

※パラメータ(Parameter)それぞれに条件を設定できます。

<?php 
    $args = array(
	'show_option_all'    => '',
	'orderby'            => 'name',
	'order'              => 'ASC',
	'style'              => 'list',
	'show_count'         => 0,
	'hide_empty'         => 1,
	'use_desc_for_title' => 1,
	'child_of'           => 0,
	'feed'               => '',
	'feed_type'          => '',
	'feed_image'         => '',
	'exclude'            => '',
	'exclude_tree'       => '',
	'include'            => '',
	'hierarchical'       => 1,
	'title_li'           => __( 'Categories' ),
	'show_option_none'   => __( '' ),
	'number'             => null,
	'echo'               => 1,
	'depth'              => 0,
	'current_category'   => 0,
	'pad_counts'         => 0,
	'taxonomy'           => 'category',
	'walker'             => null
    );
    wp_list_categories( $args ); 
?>
パラメータ説明
パラメータ 説明
show_option_all 全カテゴリーページへのリンク設定。
初期値はNULL(非表示)。
orderby カテゴリーを並べる項目。
「ID(カテゴリーID順)」「name(アルファベット順)」「slug(スラッグ順)」「count(カテゴリーの投稿数順)」「term_group」の値を設定。
初期値は「name」。
order カテゴリーの並び順。「ASC(降順)」「DESC(降順)」の値を設定。
初期値は「昇順」。
style カテゴリーリスト(ul、li)の表示形式。
「list(表示形式あり)」「none(表示形式なし)」の値を設定。
初期値は「list」。
show_count 各カテゴリーの投稿数を表示・非表示設定。
「1(表示)」「0(非表示)」の値を設定。
初期値は「0」。
hide_empty 投稿のないカテゴリーを表示・非表示。
「1(空カテゴリーを隠す)」「0(全て表示)」の値を設定。
初期値は「1」。
use_desc_for_title カテゴリーの「説明」を「title」属性に挿入・非挿入設定。
「1(カテゴリーの説明を挿入)」「0(全て表示)」の値を設定。
初期値は「1」。
child_of 指定したカテゴリーIDの子カテゴリーのみ表示する設定。
feed 各カテゴリーの「rss-2」フィードへのリンクを表示する設定。
feed_type RSSフィードのタイプを指定する設定。
feed_image 各カテゴリーの「rss-2」フィードへのリンクを画像で表示する設定。
exclude 指定したカテゴリー(複数可)をリストから除外する設定。
除外するカテゴリーの「ID」をコンマ区切りで指定。
exclude_tree 指定したカテゴリー「ID」のカテゴリーと子孫カテゴリーを除外する設定。
include 指定したカテゴリー「ID」のみリストに表示。
hierarchical 箇条書き(リスト)項目で親カテゴリーと子カテゴリーの表示レベルを設定。
「1(入れ子表示)」「0(親子同レベル)」の値を設定。
初期値は「1」。
title_li 箇条書き(リスト)に表示するタイトルの設定。
中身を空にすると非表示。
show_option_none カテゴリーが無しの時に代わりに表示するテキスト設定。
number 表示するカテゴリーの個数を設定。
「SQL」の「LIMIT」値となります。
初期値は無制限。
echo 結果を表示するか、変数等へ値を返すか。
「1(表示)」「0(値を返す)」の値を設定。
初期値は「1」。
depth カテゴリー階層のどのレベルまでをカテゴリーリストに出力するかを指定。
「0(全てのカテゴリー)」「-1(全てのカテゴリーをフラット)」「1(最上位カテゴリーのみ出力)」「n(n(数値)階層目までを出力)」「term_group」の値を設定。
初期値は「0」。
current_category カテゴリーアーカイブページ以外で「current-cat」を表示させる(カテゴリーIDを指定)設定。
pad_counts 子カテゴリーからの値を含めてリンク数または投稿数を計算する。
「1(表示)」「0(非表示)」の値を設定。
初期値は「0」。
taxonomy カテゴリーを取得するタクソノミーの名前。
初期値は「category」。
walker リストをレンダリングする「Walker」クラス。

カテゴリー一覧(カテゴリーリスト)に条件を指定して表示する方法

「wp_list_categories() 」は、あらゆるパラメータ(Parameter)で条件を設定して出力する事ができます。
パラメータ(Parameter)を利用して条件を指定したカテゴリーの一覧を出力する方法をご紹介します。

カテゴリー一覧(リスト)に表示されるタイトルを非表示

デフォルト値でカテゴリー一覧(リスト)を出力すると「タイトル(title_li)」が表示されます。
「タイトル」を非表示にする場合は、「title_li」を空で設定する必要があります。

テンプレートタグ(タイトル非表示)
<?php wp_list_categories( $args ); ?>

カテゴリー一覧(リスト)をアルファベット順で表示

カテゴリー一覧(リスト)の表示させる項目は、「orderby」のパラメータ(Parameter)に「ID(カテゴリーID順)」「name(アルファベット順)」「slug(スラッグ順)」「count(カテゴリーの投稿数順)」「term_group」の値を設定する事で項目を指定できます。
アルファベット順で表示する場合は、「name」の値を指定することでアルファベット順で出力されます。

テンプレートタグ(アルファベット順)
<?php wp_list_categories('orderby=name'); ?>

カテゴリー一覧(リスト)のカテゴリーを指定して表示

カテゴリー一覧(リスト)の表示させたいカテゴリーのみを出力する場合は、「include」のパラメータ(Parameter)に「カテゴリーID」の値を設定することで実装できます。

テンプレートタグ(カテゴリー指定)

※「2,5,10,16」はカテゴリーIDです。

<?php wp_list_categories('include=2,5,10,16'); ?>

カテゴリー一覧(リスト)の子カテゴリーのみの表示

カテゴリー一覧(リスト)の親カテゴリーを非表示にして、子カテゴリーのみを表示させたい場合は、「child_of」のパラメータ(Parameter)に「親カテゴリーID」の値を設定することで実装できます。

テンプレートタグ(子カテゴリーのみ)

※「親カテゴリーID」部分に指定する「親カテゴリーID」の数字を記述します。

<?php wp_list_categories('child_of=親カテゴリーID'); ?>

カテゴリー一覧(リスト)に投稿数を表示

カテゴリー一覧(リスト)に投稿数を表示させる場合は、「show_count」のパラメータ(Parameter)に「1(表示)」の値を設定することで実装できます。

テンプレートタグ(投稿数表示)
<?php wp_list_categories('show_count=1'); ?>
テンプレートタグ(カッコあり投稿数表示)

※投稿数をカッコ()で囲う場合。

<?php
$variable = wp_list_categories('echo=0&show_count=1');
$variable = str_replace(array('(',')'), '', $variable);
echo $variable;
?>

カスタム投稿タイプのカテゴリー一覧(リスト)を表示

カスタム投稿タイプのカテゴリー一覧(リスト)を表示させる場合は、「taxonomy」のパラメータ(Parameter)に「カスタム投稿タイプのタクソノミー名」を設定することで実装できます。

テンプレートタグ(カスタム投稿タイプ)

※「タクソノミー名」部分にカスタム投稿タイプの「タクソノミー名」を指定します。

<?php wp_list_categories('taxonomy=タクソノミー名'); ?>

特定の親カテゴリーに属する子カテゴリー一覧(リスト)に投稿数を追加して表示

特定の親カテゴリーに属する子カテゴリー一覧(リスト)に投稿数を追加して表示させる場合は、「child_of」のパラメータ(Parameter)に「親カテゴリーID」を設定し、尚且つ「show_count」のパラメータ(Parameter)に「1(表示)」を設定することで実装できます。

テンプレートタグ(子カテゴリー一覧+投稿数)

※「親カテゴリーID」部分に指定する「親カテゴリーID」の数字を記述します。

<?php wp_list_categories('title_li=&child_of=親カテゴリーID&show_count=1'); ?>

カスタム投稿タイプのカテゴリー一覧(リスト)をカテゴリーID順にして投稿のないカテゴリーを非表示に設定して表示

カスタム投稿タイプのカテゴリー一覧(リスト)をカテゴリーID順にして投稿のないカテゴリーを非表示に設定して表示させる場合は、「taxonomy」のパラメータ(Parameter)に「タクソノミー名」を設定し、尚且つ「orderby」のパラメータ(Parameter)に「ID」を設定し、「hide_empty」のパラメータ(Parameter)に「1(非表示)」を設定することで実装できます。

テンプレートタグ(カスタム投稿タイプ+ID順+投稿のないカテゴリーを非表示)

※親カテゴリーIDの部分にIDの数字を記述します。

<?php 
    $args = array(
	'taxonomy'=> 'category',
	'orderby'=> 'ID',
	'hide_empty'=> '1'
    );
    wp_list_categories( $args ); 
?>

まとめ

テンプレートタグとパラメータ(Parameter)の出力方法を覚えておくと色んな条件を指定できるので自分のやりたい表示の方法にカスタマイズできます。細かい設定を行う事でユーザビリティも変化していくので覚えておくと良いです。
今回のようにカテゴリー一覧の出力方法だけでなくあらゆる場所で条件分岐は利用できますので、まずは条件分岐の意味を理解しましょう。