/
カテゴリーの情報を一覧(配列)で取得する、カテゴリー一覧用のWordpressテンプレートタグ。
パラメータで条件を設定したり、戻り値で様々な要素を指定できます。
get_categories() 呼び出しコード
呼び出しコード | 説明 |
---|---|
<?php $cats = get_categories(); ?> | パラメータなし |
<?php $cats = get_categories('pad_counts=1&parent=0'); ?> | 直接指定 = パラメータが少ない場合など |
<?php | 引数を代入 = パラメータが多い場合など |
get_categories() パラメータ
パラメータ | 初期値 | 設定できる値 | 説明 |
---|---|---|---|
taxonomy | category | タクソノミーを指定 | タクソノミーから取得 |
slug | ” | スラッグを指定 | 指定スラッグで取得 |
orderby | name | count、name、slug、term_group、id | ソート対象 |
order | ASC | ASC(昇順)、DESC(降順) | ソート順 |
number | ” | 取得件数 | 省略時は条件に一致するすべてを取得 |
hide_empty | 1 | 1 (表示しない)、0 (表示する) | 投稿のないカテゴリー |
include | ” | カテゴリーID /複数時 , 区切り | 指定カテゴリーのみ |
exclude | ” | カテゴリーID /複数時 , 区切り | 取得しないカテゴリー |
exclude_tree | ” | カテゴリーID /複数時 , 区切り | 取得しないカテゴリー(子孫カテゴリー含む) |
pad_counts | 0 | 1(計算する)、0(計算しない) | 子カテゴリーを含めて投稿数を計算する |
child_of | 0 | カテゴリーID | 指定カテゴリーの子孫カテゴリーを取得 |
parent | ” | カテゴリーID | 指定カテゴリーの直接の子カテゴリーのみ取得parent=>0 で第一階層のみを取得 |
hierarchical | 1 | 1 (含める)、0 (含めない) | 「空の親カテの子カテに投稿がある」場合、親カテを含める |
get_categories() 戻り値
変数名 | 型 | 内容 |
---|---|---|
term_id | int | カテゴリーID |
name | string | カテゴリー名 |
slug | string | カテゴリースラッグ |
parent | int | 親カテゴリーID |
count | int | 記事数 |
description | string | カテゴリー説明 |
taxonomy | string | taxonomy名 / カテゴリー = ‘category’ |
term_taxonomy_id | int | taxonomy 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>