WordPressを使って構築したサイトで、ページャー付きの記事の一覧を出力しようとしています。
この出力の順序をカテゴリごとにしたいのですが、うまく考えつかずにいます。
何か良いお知恵をお借りできないかと思い投稿させていただきました。
望んでいる実行結果
- タクソノミーに属するすべてのタームを呼び出した記事一覧を作成する
- 1ページあたりの出力件数を指定できる(全件表示ではない)
- WP Page Naviをつかってページャーを出力したい
例えばカテゴリにはカテゴリ1・カテゴリ2・カテゴリ3という3つのタームがあり、
表示件数が5件だとして、カテゴリ1の記事が3つ、カテゴリ2の記事が2つ、カテゴリ3の記事が2つだとすると、以下のようなかたちになるのが理想です。
▼1ページ目
カテゴリ1の記事 2017/07/25(記事作成日)
カテゴリ1の記事 2017/07/24(記事作成日)
カテゴリ1の記事 2017/07/23(記事作成日)
カテゴリ2の記事 2017/07/25(記事作成日)
カテゴリ2の記事 2017/07/24(記事作成日)
(ページャーがはいる)
▼2ページ目
カテゴリ3の記事 2017/07/25(記事作成日)
試したこと
get_termsでタームを取得し、foreachで繰り返し処理してみました。
このままだと各カテゴリ全件表示であれば可能なのですが、ページャーに対応させたいときはどうしたらいいのかが考えつかずに困っています。
そもそもそういったことはできないのでしょうか…。何かアドバイスをいただけると幸いです。
PHP
1<?php 2 $terms = get_terms('category'); 3 foreach ( $terms as $term ){ 4 $args = array( 5 'posts_per_page' => -1, 6 'post_type' => 'post', 7 'tax_query' => array( 8 array( 9 'taxonomy' => 'category', 10 'field' => 'slug', 11 'terms' => $term->slug, 12 ) 13 ) 14 ); 15 $myPost = get_posts($args); 16 if($myPost): 17 foreach($myPost as $post) : setup_postdata( $post ); 18 ?> 19 <a href="<?php the_permalink(); ?>"> 20 <?php $title = get_the_title( ); echo $title; ?> 21 </a> 22 <? 23 endforeach; 24 endif; 25 wp_reset_postdata(); 26 } 27?>
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/07/31 02:37
2017/07/31 02:43 編集