WordPressで作ったサイト、一度作ったページに新しく投稿や固定ページを追加することは少ないけど、作ったページを更新することはよくあるという場合があると思います。
その時に更新した情報を一覧で表示させれたらいいなぁ、と思っていました。面倒なのかと思ってて、しばらく放置していたのですが、やってみたら案外すぐにできたので、やり方をシェアします。
投稿と固定ページを含め、更新日時が最新のものから10件取得して表示するという条件です。
ソースコード
<?php $args = array( 'posts_per_page' => 10, 'orderby' => 'modified', 'post_status' => 'publish', 'post_type' => array( 'post', 'page' ) ); $query = new WP_Query( $args ); if ($query->have_posts()): while ($query->have_posts()) : $query->the_post(); ?> <?php the_modified_date('Y/m/d'); ?><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a><br /> <?php endwhile; ?> <?php endif; ?>
ポイントはWP_Queryにセットする引数ですね。ここで利用している引数を1つずつ解説すると・・・
- posts_per_page:取得件数。ここでは10件取得したいので10と設定
- orderby:並び順。modifiedが更新日時
- post_status:公開状況。publishは公開済みのみ取得
- post_type:どんな投稿タイプの記事を取得するか。postは投稿、pageが固定ページ。カスタム投稿タイプがあれば、足していくことができます
更新日時順にソートができることを知らなかったので、これができることを知って、ハードルがかなり下がりました。あとは今までも使ったことがあるので、すんなり完成です。
あと、もう一つ初めて知ったのは「the_modified_date」関数で更新日時を表示できるということです。いや〜、WordPressは便利ですね。やりたいと思ってたことをすぐに実現できます。