วิธีรับ taxonomies ทั้งหมดของชนิดโพสต์ได้อย่างไร


45

ฉันจะได้รับ taxonomies ประเภทโพสต์ได้อย่างไร

หากฉันมีประเภทโพสต์eventและฉันจำเป็นต้องค้นหารายการ taxonomies ที่แนบกับประเภทโพสต์นั้น ฉันจะหาพวกเขาได้อย่างไร

คำตอบ:


36

เฮ้พวกฉันคิดว่าฉันเข้าใจแล้ว! หลังจากดูฟังก์ชั่นสองอย่างในไฟล์ taxonomy.php ใน WordPress ฉันได้พบฟังก์ชั่นนี้get_object_taxonomies();ซึ่งใช้เคล็ดลับ :)

นี่คือฟังก์ชั่น

function get_post_taxonomies($post) {
    // Passing an object
    // Why another var?? $output = 'objects'; // name / objects
    $taxonomies = get_object_taxonomies($post, 'objects');

    /*// Passing a string using get_post_type: return (string) post, page, custom...
    $post_type  = get_post_type($post);
    $taxonomies = get_object_taxonomies($post_type, 'objects');*/

    /*// In the loop with the ID
    $theID      = get_the_ID();
    $post_type  = get_post_type($theID);
    $taxonomies = get_object_taxonomies($post_type, 'objects');*/

    // You can also use the global $post

    // edited to fix previous error $taxonomies
    // edited to force type hinting array
    return (array) $taxonomies; // returning array of taxonomies
}

2
ดูสิ่งนี้สำหรับข้อมูลเพิ่มเติม: codex.wordpress.org/Function_Reference/get_object_taxonomies
Manny Fleurmond

ว้าว ... เรื่องน่ารู้เกี่ยวกับ get_object_taxonomies () มันเพิ่งช่วยฉันจี้แม่แบบ template_redirect
helgatheviking

สวัสดี Thankx สำหรับสิ่งนี้ แต่จะสั่งซื้อด้วย ID แทนที่จะเป็น NAME ได้อย่างไร
dh47

วิธีที่ง่ายที่สุดคือเพียงแค่เรียงลำดับโดยใช้ a forหรือforeachloop
Sisir

ใช่ฉันกำลังดึงข้อมูลโดยใช้ foreach loop แต่ฉันได้รับคำสั่งซื้อตามชื่อ$taxonomies = get_object_taxonomies( array( 'post_type' => $post_type ) ); foreach( $taxonomies as $taxonomy ) : // Gets every "category" (term) in this taxonomy to get the respective posts $terms = get_terms( $taxonomy ); ?> <ul class="specials"><?php foreach( $terms as $term ) : ?> <li><h2 ><?php echo $term->name; ?></h2>
dh47

9

get_categoriesจะทำงาน

get_categories('taxonomy=taxonomy_name&type=custom_post_type'); 

(ฉันคิดว่าถ้าฉันเข้าใจคำถามถูกต้อง!)
เพิ่มอย่างน่ารัก

3
สิ่งที่ฉันไม่มีชื่ออนุกรมวิธานนั่นคือสิ่งที่ฉันต้องการที่จะหา ฉันมีชื่อประเภทโพสต์เท่านั้น โดยชื่อโพสต์ประเภทฉันต้องการค้นหาอนุกรมวิธานทั้งหมดที่แนบกับมัน ขอขอบคุณ!
Sisir

1

คุณเคยลองอะไรบ้างไหม? อะไรแบบนี้?

<?php 

$args=array(
  'object_type' => array('event') 
); 

$output = 'names'; // or objects
$operator = 'and'; // 'and' or 'or'
$taxonomies=get_taxonomies($args,$output,$operator); 
if  ($taxonomies) {
  foreach ($taxonomies  as $taxonomy ) {
    echo '<p>'. $taxonomy. '</p>';
  }
}
?>

1
ดูที่get_taxonomies();ฟังก์ชันบน codex แต่มีเอกสารที่แย่มากและไม่รู้ว่าฉันจะผ่านประเภทโพสต์ได้อย่างไร
Sisir

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