WordPressに初めからあるタクソノミー(分類)はカテゴリーで、ユーザーが作成できるタクソノミーをカスタムタクソノミーと言います。それらのターム(項目)一覧を表示するプログラムを書き留めておきます。 一覧表示には、wp_list_categories、get_categories、get_terms を使った3つの方法があります。
1 wp_list_categoriesを使用した場合
一番簡単に一覧表示するには wp_list_categoriesです。下の例ではカテゴリーの項目一覧になります。
<?php
echo '<ul>';
$args = array (
'title_li' => '',
);
wp_list_categories( $args );
echo '</ul>';
?>
カスタムタクソノミーの項目を表示する場合は以下の様にします。
$args = array (
'title_li' => '',
'taxonomy' => 'カスタム分類名', /* この部分を追加 */
);
2 get_categoriesを使用した場合
この例では親と子供の一覧になります。wp_list_categoriesとは違い、子孫が増えるとそのぶんだけforeachのループが必要になります。parentには1つ上の階層のterm_idをセットしてループを回します。
<?php
echo '<ul>';
$args = array(
'parent' => 0,
);
$parent_categories = get_categories( $args );
foreach ( $parent_categories as $parent_category ) {
echo '<li><a href="' . esc_url( get_category_link( $parent_category->term_id )) . '">' . $parent_category->name . '</a></li>';
$args = array(
'parent' => $parent_category->term_id,
);
$children_categories = get_categories( $args );
if ( $children_categories != '' ) {
echo '<ul class="children">';
foreach ( $children_categories as $child_category ) {
echo '<li><a href="' . esc_url( get_category_link( $child_category->term_id )) . '">' . $child_category->name . '</a></li>';
}
echo '</ul>';
}
}
echo '</ul>';
?>
カスタムタクソノミーの項目を表示する場合は以下の様にします。
$args = array(
'parent' => 0,
'taxonomy' => 'カスタム分類名', /* この部分を追加 */
);
また、以下の様にすると両方の一覧が表示されます。
$args = array(
'parent' => 0,
'taxonomy' => array( 'category', 'カスタム分類名' ),
);
3 get_termsを使用した場合
get_categoriesの時と同じ様に親と子供の一覧になります。子孫が増えるとそのぶんだけforeachのループが必要になります。parentには1つ上の階層のterm_idをセットしてループを回します。
<?php
echo '<ul>';
$taxonomies = 'カスタム分類名';
$args = array(
'parent' => 0,
);
$parent_categories = get_terms( $taxonomies, $args );
foreach ( $parent_categories as $parent_category ) {
echo '<li><a href="' . esc_url( get_term_link( $parent_category->term_id )) . '">' . $parent_category->name . '</a></li>';
$args = array(
'parent' => $parent_category->term_id,
);
$child_categories = get_terms( $taxonomies, $args );
if ( $child_categories ) {
echo '<ul class="children">';
foreach ( $child_categories as $child_category ) {
echo '<li<>a href="' . esc_url( get_term_link( $child_category->term_id )) . '">' . $child_category->name . '</a></li>';
}
echo '</ul>';
}
}
echo '</ul>';
?>
カテゴリーの項目を表示するには以下の様にセットします。
$taxonomies = 'category';
また、以下の様にすると両方の一覧が表示されます。
$taxonomies = array( 'category', 'カスタム分類名' );
最後に
設定する値については、WordPress Codexを参照してください。
wp_list_categories
get_categories
get_terms
コメントを残す