foreachページャーを実装する。
-
[解決済み] カスタム投稿1覧ページでタクソノミーの1件目のみ表示
こちらを投稿させたものです。度々すみません。
意図した出力は叶ったのですが、
こちらの
・一覧上限を付ける
・ページャーの実装
というのを実現したく、また皆様のお知恵をお借りできればと思い投稿させていただきました。先ほどのソースが以下の物です。
<?php $args=array( 'name' => 'date' ); $output = 'objects'; $taxonomies=get_terms($args,$output); if ($taxonomies) { arsort($taxonomies,SORT_NUMERIC); foreach ($taxonomies as $taxonomy ) { $taxdate = $taxonomy->name ; //ここまでタクソノミー取得とforeach開始 query_posts( array( 'post_type' => 'works', 'orderby' => 'date', 'order' => 'DESC', 'posts_per_page' => '1', 'paged' => $paged, 'tax_query' => array( array( 'taxonomy'=>'date', 'terms'=>$taxdate, 'field'=>'slug', 'include_children'=>true, 'operator'=>'IN' ), 'relation' => 'AND' ) )); if (have_posts()) :while (have_posts()) : the_post(); //html //html //html endwhile; endif; wp_reset_query(); //ここまでPostTypeとタクソノミー指定してのループ } } //foreach終了 ?>
htmlが$taxdateのあるかず分表示される形となるため、
foreachの回数上限を設けたのですが、
WP-pageNaviなどのプラグインを
上記ソース終わりに設置したのですが、
foreachで設定した上限にてloopが終了しているため、
次ページへと送るものがないのか、次ページが表れない状態となっております。少し考え方を変え、
<?php $args=array( 'name' => 'date' ); $output = 'objects'; $taxonomies=get_terms($args,$output); if ($taxonomies) { foreach ($taxonomies as $taxonomy ) { $taxdate = $taxonomy->name ; //ここまでタクソノミー取得とforeach ?> <?php query_posts( array( 'post_type' => 'works', 'orderby' => 'date', 'order' => 'DESC', 'posts_per_page' => '15', 'paged' => $paged, )); if (have_posts()) :while (have_posts()) : the_post(); ?> <?php query_posts( array( 'post_type' => 'works', 'orderby' => 'date', 'order' => 'DESC', 'posts_per_page' => '1', 'paged' => $paged, 'tax_query' => array( array( 'taxonomy'=>'date', 'terms'=>$taxdate, 'field'=>'slug', 'include_children'=>true, 'operator'=>'IN' ), 'relation' => 'AND' ) )); if (have_posts()) :while (have_posts()) : the_post(); ?> //html出力個所 <?php endwhile; endif; wp_reset_query(); ?> <?php endwhile; endif; wp_reset_query(); ?> <? //ここまでループ } } //ここまでforeach ?> </ul> </div> <?php if(function_exists('wp_pagenavi')) { wp_pagenavi(); } ?>
と、
foreach
↓
posttypeと表示上限(15件)を設定したquery_post、その1
↓
posttypeと表示上限(1件)とtax_queryでタクソノミを限定したquery_post、その2
↓
html出力
↓
その1終了
↓
その2終了
↓
foreach終了
↓
ページャーとしてみたのですが、
・その1で設定した15件が無効となり、全件表示される。
・その2の条件(タクソノミ内の最新を選択)は有効
・全く同じものが2つ横並びに表示される。という形になっております。
query_postの中にquery_postを入れ、という構造が不味いのでしょうか。
なにか他によい方法などございましたら、お教えいただけますと幸いです。
よろしくお願いいたします。
3件の返信を表示中 - 1 - 3件目 (全3件中)
3件の返信を表示中 - 1 - 3件目 (全3件中)
- トピック「foreachページャーを実装する。」には新たに返信することはできません。