Как получить весь taxonomies типа сообщения?

Как я могу получить taxonomies типа сообщения?

Если у меня есть тип сообщения event и я должен узнать список taxonomies, которые присоединены к тому типу сообщения. Как я нахожу их?

47
31.12.2013, 11:02
3 ответа

Я думаю, что у меня есть он! После рассмотрения нескольких функций в 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
}
37
19.02.2020, 21:54
  • 1
    Посмотрите это для большего количества информации: codex.wordpress.org/Function_Reference/get_object_taxonomies –  Manny Fleurmond 21.06.2011, 16:15
  • 2
    , ничего себе... хороших для знания о get_object_taxonomies (). это просто помогло мне угнать template_redirect –  helgatheviking 10.11.2011, 05:17
  • 3
    Привет thankx для этого, но как заказать им идентификатором вместо ИМЕНИ? –  dh47 19.10.2015, 10:08
  • 4
    , которым самый легкий путь будет просто, сортирует их использующий a for или foreach цикл. –  Sisir 19.10.2015, 12:25
  • 5
    Да, я выбираю цикл foreach использования, но я получаю порядок по имени $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 19.10.2015, 13:19

get_categories сделает задание.

get_categories('taxonomy=taxonomy_name&type=custom_post_type'); 
9
19.02.2020, 21:54
  • 1
    (я думаю, понял ли я право вопроса!) –  addedlovely 21.06.2011, 14:46
  • 2
    , у меня нет имени таксономии, это - то, что я хочу узнать. У меня только есть название типа сообщения. Именем типа сообщения я хочу узнать всю таксономию, которые присоединены к этому. Спасибо так или иначе! –  Sisir 21.06.2011, 15:47

Вы попробовали что-нибудь? что-то вроде этого?

<?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
19.02.2020, 21:54
  • 1
    Посмотревший на get_taxonomies(); функция на кодексе, но это имеет очень плохую документацию и не было никакой идеей, как я могу передать типы сообщения. –  Sisir 21.06.2011, 12:56
  • 2
    Извините, этот код возвращается, все зарегистрировали taxonomies в Wordpress. –  Sisir 21.06.2011, 12:59

Теги

Похожие вопросы