Jak uzyskać wszystkie taksonomie typu post?


Odpowiedzi:


36

Cześć wszystkim, myślę, że mam! Po przejrzeniu kilku funkcji w pliku taxonomy.php w WordPress znalazłem tę funkcję, get_object_taxonomies();która załatwiła sprawę :)

Oto funkcja

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 ... dobrze wiedzieć o get_object_taxonomies (). pomogło mi to w przejęciu szablonu_redirect
helgatheviking,

Cześć, dzięki za to, ale jak zamówić je według ID zamiast NAZWA?
dh47

najłatwiejszym sposobem będzie posortowanie ich za pomocą pętli forlub foreach.
Sisir,

Tak, pobieram za pomocą pętli foreach, ale otrzymuję zamówienie według nazwy$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 wykona zadanie.

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

(Myślę, że dobrze zrozumiałem pytanie!)
dodał ładnie

3
Chodzi o to, że nie mam żadnej nazwy taksonomicznej, właśnie tego chcę się dowiedzieć. Mam tylko nazwę typu posta. Po nazwie typu postu chcę dowiedzieć się o wszystkich taksonomiach, które są z nim związane. W każdym razie dzięki!
Sisir

1

Próbowałeś już czegoś? coś takiego?

<?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
Sprawdziłem get_taxonomies();funkcję kodeksu, ale ma bardzo słabą dokumentację i nie miałem pojęcia, jak mogę przekazać typy postów.
Sisir

Przepraszamy, ten kod zwraca wszystkie zarejestrowane taksonomie w wordpress.
Sisir
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.