แสดงรายการหมวดหมู่ย่อยทั้งหมดจากหมวดหมู่


คำตอบ:


29

ใช่คุณสามารถใช้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>';  
}

6
เพียงข้อเสนอแนะ:ด้วยความนิยมของประเภทโพสต์ที่กำหนดเองและ taxonomies ฉันรู้สึกว่ามันจะดีกว่าที่จะแนะนำget_termsเพราะจะช่วยให้ผู้ใช้คุ้นเคยกับฟังก์ชั่นการดึงคำทั่วไปที่เป็นหมวดหมู่ฟังก์ชั่นค่อนข้างเฉพาะกับอนุกรมวิธานในตัว แม้ว่าจะไม่ได้ในทุกกรณี) คุณไม่ต้องยอมรับแน่นอนมันเป็นเพียงข้อเสนอแนะ ... ;)
t31os

2
ฉันยอมรับว่าget_terms ()อาจจะดีกว่า
Django Reinhardt

@ t31os - คุณช่วยโพสต์คำตอบได้get_termsไหม?
vsync
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.