###実現したいこと
はじめてのご質問です。よろしくお願いたします。
現在、WordPressでタクソノミーのタームを、
「そのタームに属する記事の最新更新日」順で
表示したいのですがどのような方法を取ればよいか悩んでおります。。
作品1、作品2、作品3、、、、などのタームがあり、
作品2に属する記事が新しく投稿されると
・作品2(最終更新日:2017/4/2 13:00)
・作品1(最終更新日:2017/4/2 10:00)
・作品3(最終更新日:2017/4/1 9:00)
のような順番で表示したいと考えています(伝わりますでしょうか…?)
下記のソースコードまでは自分でなんとか、
array_multisort関数を使いソート出来たのですが、
この先どう出力したらよいかがイメージ出来ていません。
初心者のコードで、ツッコミ所だらけなのかと思いますが、
お詳しい方いらっしゃいましたらアドバイスをいただけますと幸いです。
###ソースコード
<?php $wp_term_query_args = array( 'taxonomy' => 'sakuhin', 'orderby' => 'name', 'order' => 'ASC', 'hide_empty' => true ); $the_query = new WP_Term_Query($wp_term_query_args); foreach($the_query->get_terms() as $term){ $term_link = get_term_link($term->slug,'sakuhin'); $get_posts_args = array( 'post_type' => 'page', 'posts_per_page' => 1, 'orderby' => 'date', 'order' => 'DESC', 'tax_query' => array( array( 'taxonomy' => 'sakuhin', 'field' => 'term_id', 'terms' => $term->term_id ) ) ); $domestic_post = get_posts($get_posts_args); if($domestic_post) : foreach($domestic_post as $post) : setup_postdata( $post ); $time = $post->post_date; //作品内の最新公開日時を変数に代入 endforeach; else : ?> <p>エラー。表示する記事がありません。</p> <?php endif; wp_reset_postdata(); // 最新公開日時を配列に代入 $arr_data[] = array('ID'=>$term->term_id, 'name'=>$term->name, 'updated'=>$time); // 公開日時で作品をソート foreach($arr_data as $key => $val){ $updated[$key] = $val["updated"]; } array_multisort($updated, SORT_DESC, $arr_data); }; ?>
あなたの回答
tips
プレビュー