Як отримати всі таксономії типу публікації?


45

Як я можу отримати таксономії типу публікації?

Якщо у мене є тип посади, eventі мені потрібно дізнатися список таксономій, які додаються до цього типу посади. Як їх знайти?

Відповіді:


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

Привіт спасибі за це, але як їх замовити за ідентифікатором замість NAME?
dh47

Найпростішим способом буде просто сортування їх за допомогою forабо foreachциклу.
Сісір

Так, я отримую цикл 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

9

get_categories зробить роботу.

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

(Я думаю, якби я зрозумів це питання правильно!)
додавlovely

3
Річ у тому, що я не маю назви таксономії, ось що я хочу дізнатися. У мене є лише назва типу публікації. За назвою типу посади я хочу з’ясувати всю таксономію, яка додається до нього. Все одно, дякую!
Сисір

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();функцію кодексу, але він має дуже погану документацію і не уявляв, як я можу передавати типи публікацій.
Сисір,

На жаль, цей код повертає всі зареєстровані таксономії в wordpress.
Сісір,
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.