web-dev-qa-db-ja.com

すべての投稿をメインカテゴリと1サブカテゴリに表示する

WP内蔵ギャラリー機能を使用してギャラリーを作成するためのカスタム投稿タイプを定義しました。

register_post_type( 'my_gallery',
    array(
        'labels' => array(
            'name' => __( 'Gallery', 'my-child-theme' ),
            'singular_name' => __( 'Gallery', 'my-child-theme' )
        ),
        'public' => true,
        'supports' => array( 'title', 'editor', 'custom-fields', 'thumbnail' )
    )
);

また、この特定のCPTのカスタム分類法を作成しました。メインカテゴリは「ギャラリー」、サブカテゴリは「履歴」です。

-Galleries
    -History

私はまた、子テーマでtaxonomy-galleries.phpという名前のテンプレートを作成しました。これはすべての投稿をギャラリー内、そして履歴内にも表示します。

今私が欲しいのはこれです:メインカテゴリのすべての投稿を表示し、最大12の要素でページングされたサブカテゴリの履歴を表示します。

どうすればいいの?

@mmm -sに基づいてを編集して、1つの配列内のすべての要素を取得する方法を調べます。

    $all_the_items = array();
    while ( have_posts() ) : the_post();
          $t = get_the_terms( $post->ID , 'my-taxonomy' );
                if ($t[0]->parent == 0){
                $properties = array(
                    'title' => get_the_title(),
                    'link' => get_the_permalink() );
                 $all_the_items[] = $properties;
}
endwhile; wp_reset_query();
    $o = get_queried_object();
            $children = get_term_children($o->term_id, $o->taxonomy);
            foreach ($children as $child) {
                $this_term = get_term($child);
                $properties = array(
                    'title' => $this_term->name,
    'link' => site_url('/' . $this_term->taxonomy . '/' . $this_term->slug . '/')
                );
    }
1
D. Dan

照会されたオブジェクトの子を取得するために、このコードを使用することができますファイルtaxonomy-galleries.php

$o = get_queried_object();
$children = get_term_children($o->term_id, $o->taxonomy);

$childrenは用語識別子の配列なので、これをループするだけです。

1
mmm