Bagaimana cara mendapatkan semua taksonomi dari jenis tulisan?


45

Bagaimana saya bisa mendapatkan taksonomi jenis posting?

Jika saya memiliki jenis posting eventdan saya perlu mencari tahu daftar taksonomi yang dilampirkan ke jenis posting itu. Bagaimana saya menemukan mereka?

Jawaban:


36

Hai teman-teman, saya pikir saya mengerti! Setelah melihat beberapa fungsi dalam file taxonomy.php di WordPress saya telah menemukan fungsi ini get_object_taxonomies();yang melakukan trik :)

Inilah fungsinya

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
}


wow ... senang mengetahui tentang get_object_taxonomies (). itu hanya membantu saya membajak template_redirect
helgatheviking

Hai terima kasih untuk ini, tetapi bagaimana cara memesannya dengan ID, bukan NAME?
Dh47

Cara termudah adalah dengan mengurutkannya menggunakan a foratau foreachloop.
Sisir

Ya saya mengambil menggunakan foreach loop tetapi saya mendapatkan pesanan dengan nama$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 akan melakukan pekerjaan itu.

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

(Saya pikir jika saya mengerti pertanyaannya dengan benar!)
addlovely

3
Masalahnya saya tidak memiliki nama taksonomi, itulah yang ingin saya cari tahu. Saya hanya memiliki nama jenis posting. Dengan nama tipe posting saya ingin mengetahui semua taksonomi yang terlampir padanya. Bagaimanapun, terima kasih!
Sisir

1

Sudahkah Anda mencoba sesuatu? sesuatu seperti ini?

<?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
Tampak pada get_taxonomies();fungsi pada codex tetapi memiliki dokumentasi yang sangat buruk dan tidak tahu bagaimana saya bisa melewati tipe posting.
Sisir

Maaf, kode ini mengembalikan semua taksonomi terdaftar di wordpress.
Sisir
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.