カテゴリを条件を絞って複数取得したい。get_categoriesのパラメーターの意味を簡単に教えて欲しい

投稿用キャラクタ

そんな疑問にお答えします。

この記事ではget_categoriesの使い方を解説します。get_categoriesは指定する条件で複数カテゴリーを取得できるテンプレートタグです。

記事の前半では基本的な使い方をご紹介し、後半部分では実際に使えるサンプルコードを複数載せていますので使い方をより具体的にイメージできます。

get_categoriesの使い方

基本的なget_categoriesの使い方をみていきましょう。get_categoriesはパラメーターを配列で指定しカテゴリーを配列形式で取得することができます。

特定のカテゴリを1つだけ取得する場合は

【WordPress】カテゴリを取得できるget_the_categoryの使い方

を使った取得方法もあります。

get_categoriesの記述方法

get_categoriesはパラメーターを配列形式で渡します。

<?php  get_categories( $args ); ?>

パラメーターの初期値

<?php 
$args = array(
	'type'                     => 'post',
	'child_of'                 => 0,
	'parent'                   => '',
	'orderby'                  => 'name',
	'order'                    => 'ASC',
	'hide_empty'               => 1,
	'hierarchical'             => 1,
	'exclude'                  => '',
	'include'                  => '',
	'number'                   => '',
	'taxonomy'                 => 'category',
	'pad_counts'               => false 
); 
?>

パラメーターの解説

プロパティ名 データ型 解説
type 文字列 postかlinkだがlinkは非推奨
child_of 整数 カテゴリーIDで子孫カテゴリーを取得
parent 整数 カテゴリーIDで直接の子カテゴリーを取得
orderby 文字列 カテゴリーの並び替えを行う。指定する文字列はid、 name(初期値)、slug、count,term_group
hide_empty 理論値 記事がないカテゴリーを表示を指定。1(true)初期値、2(false)
hierarchical 理論値 trueが指定されている場合記事がないカテゴリで子カテゴリーに記事があれば表示。1(true)初期値、2(false)
exclude 文字列 表示したくないカテゴリーを指定。コンマ(、)で数字を区切り昇順で指定
include 文字列 表示したいカテゴリーを指定。コンマ(、)で数字を区切り昇順で指定
number 文字列 カテゴリの上限を指定
taxonomy 文字列、配列 カテゴリの代わりにタクソノミーから取得
pad_counts 理論値 子カテゴリーを含めてリンクおよび投稿数を計算1(true)、2(false)初期値

戻り値

戻り値

戻り値は配列になり以下のような形になります。

array(9) {
  [0]=>
  object(WP_Term)#5839 (16) {
    ["term_id"]=>
    int(2)
    ["name"]=>
    string(8) "Hokkaido"
    ["slug"]=>
    string(8) "hokkaido"
    ["term_group"]=>
    int(0)
    ["term_taxonomy_id"]=>
    int(2)
    ["taxonomy"]=>
    string(8) "category"
    ["description"]=>
    string(0) ""
    ["parent"]=>
    int(0)
    ["count"]=>
    int(2)
    ["filter"]=>
    string(3) "raw"
    ["cat_ID"]=>
    int(2)
    ["category_count"]=>
    int(2)
    ["category_description"]=>
    string(0) ""
    ["cat_name"]=>
    string(8) "Hokkaido"
    ["category_nicename"]=>
    string(8) "hokkaido"
    ["category_parent"]=>
    int(0)
  }
}

実際には複数オブジェクトがありますがここでは先頭の1つを例として表示しています。

プロパティ名 データ型 解説
term_id 整数 カテゴリーID
name 文字列 カテゴリー名
slug 文字列 カテゴリーのスラッグ
term_group 文字列 カテゴリのーグループ
term_taxonomy_id 整数 カテゴリーのタクソノミーID
taxonomy 文字列 タクソノミー名
parent 整数 親カテゴリーのID
count 整数 カテゴリーに登録されている投稿の数
filter 文字列 フィルタ名
cat_ID 整数 カテゴリーID
category_count 整数 カテゴリーに登録されている投稿の数
category_description 文字列 カテゴリーの説明
cat_name 文字列 カテゴリー名
category_nicename 文字列 カテゴリースラッグ名 – カテゴリー名から生成されたスラッグ
category_parent 整数 親カテゴリーの ID – 親がなければ 0 が入る
右にスクロールできます。

戻り値はget_categoryの戻り値のオブジェクトを配列にしたものです。

最上位のカテゴリーをカテゴリ名順でリンク付きで出力する

$args = array(
  'orderby' => 'name', //カテゴリ名順に並び替え
  'parent' => 0 //最上位のカテゴリを指定
  );
$categories = get_categories( $args );
foreach ( $categories as $category ) {
	echo '<a href="' . get_category_link( $category->term_id ) . '">' . $category->name . '</a><br/>';
}
?>

HTML出力例

<a href="https://wp-fan.com/category/hokkaido/">Hokkaido</a><br/>
<a href="https://wp-fan.com/category/tips/">TIPS</a><br/>
<a href="https://wp-fan.com/category/uncategorized/">Uncategorized</a><br/>
<a href="https://wp-fan.com/category/rental-server/">レンタルサーバー</a><br/>
<a href="https://wp-fan.com/category/%e5%a4%a7%e5%88%86%e7%9c%8c/">大分県</a><br/>
<a href="https://wp-fan.com/category/%e8%8c%a8%e5%9f%8e%e7%9c%8c/">茨城県</a><br/>
<a href="https://wp-fan.com/category/%e8%a6%aa%e3%82%ab%e3%83%86%e3%82%b4%e3%83%aa/">親カテゴリ</a><br/>
<a href="https://wp-fan.com/category/%e9%95%b7%e5%b4%8e%e7%9c%8c/">長崎県</a><br/>

画面表示例

Hokkaido
TIPS
Uncategorized
レンタルサーバー
大分県
茨城県
親カテゴリ
長崎県

リンク先は#に変更しています。get_category_linkはカテゴリIDを指定するとURLを取得できます。

カテゴリの出力件数を指定する

<?php					
$args = array(
  'orderby' => 'name',
  'parent' => 0,
  'number' => "3" //取得する件数を3に指定
  );
$categories = get_categories( $args );
foreach ( $categories as $category ) {
	echo '<a href="' . get_category_link( $category->term_id ) . '">' . $category->name . '</a><br/>';
}
?>

先ほどの記述例に件数を3件と指定し記述しました。

HTML出力内容

<a href="https://wp-fan.com/category/hokkaido/">Hokkaido</a><br/>
<a href="https://wp-fan.com/category/tips/">TIPS</a><br/>
<a href="https://wp-fan.com/category/uncategorized/">Uncategorized</a><br/>

画面表示例

Hokkaido
TIPS
Uncategorized

まとめ

get_categoriesの使い方を解説しました。サンプルコードとは別にリンクがついたカテゴリをリスト形式で取得する場合はwp_list_categoriesというタグも用意されているので使い分けましょう!