質問: array( 'post_type' => get_post_type(), 'tax_query' => array( 'relation' => 'OR', array( 'taxonomy' => 'brand', 'field' => 'slug', 'terms' => array( $term->slug ), ), array( 'taxonomy' => 'size', 'field' => 'term_id', 'terms' => array( $term->slug ), ), ), 'posts_per_page' => 6, ); ?> //ここにhtmlを表示 ```
回答: > > A-G、X-Zごとに投稿記事があり、Aの投稿記事、Bの投稿記事のようにページごとに表示を変えたい。 > > > とは下記のようなことでしょうか。 もし違う場合は具体的に表示結果をこうしたい等質問文に追加したほうがよさそうです。 (自分がやりたいことを他人に伝えるのが実はかなり難しいんですよね 以下推測 ``` タクソノミーbrand タームAの記事6件 タクソノミーbrand タームBの記事6件 タクソノミーbrand タームCの記事6件 ~ タクソノミーsize タームXの記事6件 タクソノミーsize タームYの記事6件 タクソノミーsize タームZの記事6件 ``` とターム毎に6件ずつ投稿を表示 ``` 0, 'hierarchical' => 0, //term_orderは使えないためidにしました 'orderby' => 'id', 'order' => 'ASC' ); foreach ($taxonomy as $tax){ //タクソノミーでループする $terms = get_terms($tax, $taxArgs); $slugs = array(); foreach ($terms as $term){ //タームでループする $gpArgs = array( 'posts_per_page' => 6, 'post_type' => 'product', 'tax_query' => array( array( 'taxonomy' => $tax, 'field' => 'slug', 'terms' => $term->slug ) ) ); $myposts = get_posts($gpArgs); global $post; if($myposts){ foreach ($myposts as $post){ setup_postdata($post); /* ここで投稿内容を表示 the_title等 */ } } else { /* 投稿がない場合 */ } wp_reset_postdata(); } } ``` コードは動作確認してないため微妙に間違ってるかもしれませんが。。。 1. 流れとしてはタクソノミーでループ 2. タームでループ 3. ターム毎にget_postsに投稿数,タクソノミー,ターム,カスタム投稿タイプを指定して投稿を取得 となります。 global $post;に関してはコードを書く場所によっては必要なので、外してみて問題なければ削除して下さい。 パラメータの指定方法ですが似たような関数でも指定方法が異なったりしますので https://wpdocs.osdn.jp/Main_Page やget_terms,get_posts等の関数名で検索して確認されたほうがよいと思います