投稿タイプのすべての分類を取得する方法は?


45

投稿タイプの分類を取得するにはどうすればよいですか?

投稿タイプがeventあり、その投稿タイプに添付されている分類法のリストを見つける必要がある場合。どうやって見つけますか?

回答:


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
}

2
詳細については、こちらをご覧ください:codex.wordpress.org/Function_Reference/get_object_taxonomies
マニー・フルーモンド

うわー... get_object_taxonomies()について知っておくと良い。それはちょうど私がtemplate_redirectをハイジャック助け
helgatheviking

こんにちはこれに感謝しますが、NAMEではなくIDでそれらを注文する方法?
dh47

最も簡単な方法は、foror 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'); 

(質問を正しく理解できたと思います!)
lovelyly

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で登録されているすべての分類法を返しています。
シシル
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.