Mill's Note

【Wordpress関数】get_categories()

/

カテゴリーの情報を一覧(配列)で取得する、カテゴリー一覧用のWordpressテンプレートタグ。
パラメータで条件を設定したり、戻り値で様々な要素を指定できます。

get_categories() 呼び出しコード

呼び出しコード説明
<?php $cats = get_categories(); ?>パラメータなし
<?php $cats = get_categories('pad_counts=1&parent=0'); ?>直接指定 = パラメータが少ない場合など
<?php
  $args = array(
    'orderby' => 'count',
    'order'   => 'DESC',
    'parent'  => 0
  );
  $cats = get_categories( $args );
?>
引数を代入 = パラメータが多い場合など

get_categories() パラメータ

パラメータ初期値設定できる値説明
taxonomycategoryタクソノミーを指定タクソノミーから取得
slugスラッグを指定指定スラッグで取得
orderbynamecount、name、slug、term_group、idソート対象
orderASCASC(昇順)、DESC(降順)ソート順
number取得件数省略時は条件に一致するすべてを取得
hide_empty11 (表示しない)、0 (表示する)投稿のないカテゴリー
includeカテゴリーID /複数時 , 区切り指定カテゴリーのみ
excludeカテゴリーID /複数時 , 区切り取得しないカテゴリー
exclude_treeカテゴリーID /複数時 , 区切り取得しないカテゴリー(子孫カテゴリー含む)
pad_counts01(計算する)、0(計算しない)子カテゴリーを含めて投稿数を計算する
child_of0カテゴリーID指定カテゴリーの子孫カテゴリーを取得
parentカテゴリーID指定カテゴリーの直接の子カテゴリーのみ取得
parent=>0 で第一階層のみを取得
hierarchical11 (含める)、0 (含めない)「空の親カテの子カテに投稿がある」場合、親カテを含める
主要なパラメータのみを記載 / 他のパラメータはGoogle様でm(__)m

get_categories() 戻り値

変数名内容
term_idintカテゴリーID
namestringカテゴリー名
slugstringカテゴリースラッグ
parentint親カテゴリーID
countint記事数
descriptionstringカテゴリー説明
taxonomystringtaxonomy名 / カテゴリー = ‘category’
term_taxonomy_idinttaxonomy ID
エイリアスは記載していません。

get_categories() の使用例

シンプルな <ul><li> リスト

PHP
<ul>
<?php
  $cats = get_categories();
  foreach ($cats as $cat) { 
?>
  <li><a href="<?php echo get_category_link($cat->term_id); ?>"><?php echo $cat->name; ?></a></li>
<?php } ?>
<ul>

親子 <ul><li> リスト

PHP
<ul>
  <?php /* 第1階層 */
    $cats = get_categories('parent=0');
    foreach ($cats as $cat) { 
      $parent = $cat->term_id;
  ?>
  <li>
    <a href="<?php echo get_category_link($parent); ?>"><?php echo $cat->name; ?></a>
    <?php /* 第2階層 */
       $children = get_categories('parent='.$parent);
       if($children){
    ?>
    <ul class="children">
      <?php foreach ($children as $child) { ?>
      <li>
        <a href="<?php echo get_category_link($child->term_id); ?>"><?php echo $child->name; ?></a>
      </li>
      <?php } ?>
    </ul>
    <?php } ?>
  </li>
  <?php } ?>
<ul>