web-dev-qa-db-ja.com

カテゴリーからすべてのサブカテゴリーをリストする

特定のカテゴリからすべてのサブカテゴリを取得する方法を教えてください。

16
Fuxi

はい、 get_categories()'child_of'属性を使用することができます。たとえば、IDが17のカテゴリのすべてのサブカテゴリ:

$args = array('child_of' => 17);
$categories = get_categories( $args );
foreach($categories as $category) { 
    echo '<p>Category: <a href="' . get_category_link( $category->term_id ) . '" title="' . sprintf( __( "View all posts in %s" ), $category->name ) . '" ' . '>' . $category->name.'</a> </p> ';
    echo '<p> Description:'. $category->description . '</p>';
    echo '<p> Post Count: '. $category->count . '</p>';  
}

これにより、子孫であるすべてのカテゴリ(つまり、子供と孫)が取得されます。

直接の子孫であるカテゴリ(つまり、子供のみ)のみを表示したい場合は、'parent'属性を使用できます。

$args = array('parent' => 17);
$categories = get_categories( $args );
foreach($categories as $category) { 
    echo '<p>Category: <a href="' . get_category_link( $category->term_id ) . '" title="' . sprintf( __( "View all posts in %s" ), $category->name ) . '" ' . '>' . $category->name.'</a> </p> ';
    echo '<p> Description:'. $category->description . '</p>';
    echo '<p> Post Count: '. $category->count . '</p>';  
}
27
Bainternet