WordPress

カテゴリ一覧を表示する方法【WordPress】

wordpressカテゴリ一覧の取得方法

WordPressでカテゴリ一覧を表示することは多いです。
サイドバーに設置したり、セレクトボックスに使用するなど様々な場所で使用することになります。

カテゴリ一覧、またカスタムタクソノミーの一覧を表示する方法を解説します。

カテゴリの一覧を表示する

get_categories」を使用してカテゴリを取得する

「get_categories」はパラメータで条件を指定して、それにマッチした値を配列で返します。

<?php $categories = get_categories( $args ); ?>

パラメータ、初期値に関しては公式ドキュメントの方をご確認ください。
https://wpdocs.osdn.jp/%E9%96%A2%E6%95%B0%E3%83%AA%E3%83%95%E3%82%A1%E3%83%AC%E3%83%B3%E3%82%B9/get_categories

よく使うパラメータ一覧

よく使うパラメータを記載します。

 child_of 指定したカテゴリの直接の子カテゴリを指定する。
 orderby データの並び順を指定する。
・id、name、slug等
 order 並び替えの昇順降順を指定する。
・ASC
・DESC
 hide_empty投稿が存在しないカテゴリを取得するかどうかを指定する。
・1 【取得しない】 初期値
・0 【取得する】
 taxonomy 指定したタクソノミーのカテゴリ(ターム)を

よく使う戻り値

戻り値は以下のような配列で返ります。
よく使う値を記します。

  0 => 
    object(WP_Term)
      public 'term_id' => int 3       //ID
      public 'name' => string 'カテゴリー2'  //カテゴリ名
      public 'slug' => string 'cat2'        //カテゴリスラッグ
      public 'count' => int 2               //投稿数
      public 'term_taxonomy_id' => int 3    //タクソノミーID
      public 'taxonomy' => string 'category'//タクソノミー名

しかし、戻り値にリンクはありませんので、「get_category_link」を使用します。

get_category_link」を使用してリンク付きのカテゴリ一覧を表示

指定したカテゴリIDのアーカイブページのURLを取得します。

<?php get_category_link( $category_id ); ?>
<?php
	$args = array(
		'orderby' => 'id',
		'order' => 'asc',
		'hide_empty' => 0,
	);
	$categories = get_categories( $args );
?>

<ul>
	<?php foreach( $categories as $category ) : ?>
		<li>
			<!--取得したIDを使用し、get_category_linkでリンクを取得-->
			<a href="<?php echo get_category_link( $category->term_id ); ?>">
				<!--カテゴリ名を表示-->
				<?php echo $category->name; ?>
			</a>
		</li>
	<?php endforeach; ?>
</ul>

get_terms」でカテゴリ一覧を取得する

指定したタクソノミーのタームを取得します。
パラメータなどは、get_categoriesと似てるので割愛。

■公式ドキュメント
https://wpdocs.osdn.jp/%E9%96%A2%E6%95%B0%E3%83%AA%E3%83%95%E3%82%A1%E3%83%AC%E3%83%B3%E3%82%B9/get_terms

get_term_link」でカテゴリリンクを取得する

get_terms」の場合は、リンクを「get_term_link」で取得します。

<?
//タームのID,スラッグと、タクソノミースラッグを指定してリンクを取得。
php get_term_link( $term, $taxonomy ); 
?>
<?php
//通常の投稿のカテゴリは'category'で指定します。
$taxonomy = 'category';
$terms = get_terms($taxonomy);

foreach ($terms as $term) :  ?>
    <li>
        <a href="<?php echo get_term_link($term->slug,$taxonomy) ?>">
            <?php echo $term->name; ?>
        </a>
    </li>
<?php endforeach; ?>

wp_list_categories」でリンク付きのカテゴリ一覧を取得する

wp_list_categories」もカテゴリ一覧を取得します。
get_categories」との違いは、リンク付きの一覧をそのまま返してくれることです。
また、初期値ではリスト<ul>形式で返されるので、テンプレートの記述が簡潔に書けます。

■公式ドキュメント
https://wpdocs.osdn.jp/%E3%83%86%E3%83%B3%E3%83%97%E3%83%AC%E3%83%BC%E3%83%88%E3%82%BF%E3%82%B0/wp_list_categories

<?php
 //パラメータ指定 'title_li'はリストの外側に表示されるタイトルです。
  //初期値は'Categories'が表示されるので消してます。
	$args = array(
	    'title_li' => '',
	);
	wp_list_categories($args); 
?>

カスタムタクソノミー一覧を表示する

タクソノミー一覧も、同じテンプレートタグで取得できます。
'taxonomy'パラメータに、取得したいタクソノミーのスラッグを指定します。

get_categories」を使用してカスタムタクソノミー一覧を取得する

taxonomy」パラメータに取得したいタクソノミー名を指定します。

<?php
    //取得したいタクソノミー名を指定。
    //例)犬タクソノミーを取得
    $args = array(
        'taxonomy' => 'dog',
    );
    $categories = get_categories( $args );
?>

<ul>
    <?php foreach( $categories as $category ) : ?>
        <li>
            <a href="<?php echo get_category_link( $category->term_id ); ?>">
                <?php echo $category->name; ?>あ
            </a>
        </li>
    <?php endforeach; ?>
</ul>

get_terms」でカスタムタクソノミー一覧を取得する

<?php
$taxonomy = 'dog';
$terms = get_terms($taxonomy);
foreach ($terms as $term) : ?>
    <li><a href="<?php echo get_term_link($term->slug,$taxonomy) ?>"><?php echo $term->name; ?></a></li>
<?php endforeach; ?>

wp_list_categories」を使用してリンク付きカスタムタクソノミー一覧を取得する

<ul class="questions_catList">
    <?php
        $args = array(
        'taxonomy' => 'dog',
        'title_li' => '',
        );
        wp_list_categories($args); 
    ?>
</ul>

どれを使えばいいの?

似たようなテンプレートタグがあり、どれを使えばいいのかと思うかもしれません。
私的には、ただリンク付きの一覧を表示するだけなら、「wp_list_categories」を使うのが簡単だと思います。

get_terms」、「get_categories」はカテゴリ情報を取得して、データの加工や処理に使いたい場合に使用すれば良いと思います。

また、ワードプレスに関してもっと知りたい方は、おススメ書籍を解説してますのでこちらもご参考下さい。

おすすめ

WordPress 仕事の現場でサッと使える! デザイン教科書

WordPress 仕事の現場でサッと使える! デザイン教科書
総合評価 :

対象としては初心者を脱した方~中級者が対象になると思います。
Web制作現場などで働いている方が、困ったときにサッと確認する手引書のような使い方もできそうです。
先に紹介した書籍より一歩踏み込んだ内容になっています。

●WordPressで良く使用されるカスタム投稿について一章掛けて分かりやすく解説してくれる
●プラグイン作成から公開後の運用まで実務的な内容になっている
●ブロックエディタについて詳しい使い方が分かる
●WordPress作成中に分からないところを手引書のようにサッと調べられる
●巻末おまけのテンプレート階層やオブジェクトパラメーター一覧など調べたいときにすぐ見れる

●開発環境の作成方法などは載っていないので、初心者には難しいかも。

-WordPress
-,