Daftar semua subkategori dari kategori

Jawaban:

29

Ya, Anda bisa menggunakan get_categories () menggunakan 'child_of'atribut. Misalnya semua sub kategori kategori dengan 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>';  
}

Ini akan mendapatkan semua kategori yang merupakan keturunan (yaitu anak-anak & cucu).

Jika Anda ingin menampilkan hanya kategori yang merupakan keturunan langsung (yaitu anak-anak saja) Anda dapat menggunakan 'parent'atribut.

$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>';  
}
Bainternet
sumber
6
Hanya saran: Dengan popularitas jenis pos kustom dan taksonomi, saya merasa akan lebih baik untuk menyarankan get_terms, karena ini membantu membiasakan pengguna dengan fungsi pengambilan istilah umum, sedangkan fungsi kategori agak spesifik untuk taksonomi bawaan ( meskipun tidak dalam semua kasus). Anda tidak harus setuju tentu saja, itu hanya saran ...;)
t31os
2
Saya setuju bahwa get_terms () mungkin lebih baik.
Django Reinhardt
@ t31os - bisakah Anda mengirim jawaban menggunakan get_termstolong?
vsync