如何获得职位类型的所有分类法?


Answers:


36

嘿,我想我明白了!在查看了WordPress中taxonomy.php文件中的几个函数后,我发现此函数起到了作用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
}


哇...很高兴了解get_object_taxonomies()。它只是帮助我劫持了template_redirect
helgatheviking 2011年

嗨,谢谢你,但是如何通过ID而不是NAME订购它们?
dh47

最简单的方法是使用foror foreach循环对它们进行排序。
西西尔(Sisir)

是的,我正在使用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'); 

(我想我是否理解正确的问题!)
2011年

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();法典上的功能,但它的文档非常差,不知道我如何传递帖子类型。
西西尔(Sisir)

抱歉,此代码将在wordpress中返回所有已注册的分类法。
西西尔(Sisir)
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.