web-dev-qa-db-ja.com

すべての投稿タイプのすべての分類法を取得

私はそれぞれの(カスタム)投稿タイプについて利用可能なすべての分類法を取得したいと思います。私の目的は、各投稿タイプ、カテゴリ、タグなどの各分類、および各用語の項目数を含むすべての登録用語(およびID)を取得することです。

そのようなものを出力したいのですが。

post
   Categories
      cat1 (2)
      cat2 (1)
   Tags
      Tag1 (5)
      Tag2 (3)
portfolio
   Attributes
      att1 (2)
      att2 (1)
      att3 (5)
      att4 (9)
   Categories
      cat1 (2)
      cat2 (4)
      cat2 (1)
   Tags
      Tag1 (5)
      Tag2 (3)
....

私は今、それをするための正しいそして最善の方法が何であるかはわかりません。思ったより少し複雑で、解決策が見つかりませんでした。

1
freaky

Get_post_typesを使ってすべての投稿タイプのリストを問い合わせることをお勧めします。その配列であなたはforeachをすることができます。投稿タイプごとに、get_termを使用してすべての用語をクエリします。これはこのように見えるでしょうが、get_post_typesにあなたの知っている投稿タイプを渡すべきです。

function agency_wp_test() {
    $post_types = get_post_types(); 

    foreach ( $post_types as $post_type ) {
        $taxonomy_names = get_object_taxonomies( $post_type );

        $terms = get_terms( $taxonomy_names, array( 'hide_empty' => false ));
         if ( ! empty( $terms ) && ! is_wp_error( $terms ) ){
             echo '<h5>'.$post_type.'</h5>';
             echo '<ul>';
             foreach ( $terms as $term ) {
               echo '<li>' . $term->name . '</li>';

            }
            echo '</ul>';
        }
    }
}
3
mrbobbybryant