「固定の期間(例: 11月1日〜10日)」で記事一覧を表示したい場合は、WordPress の WP_Query の date_query を使うのが王道です。
コード例:2014年11月1日〜11月10日の記事一覧
page.php や archive.php、あるいは専用テンプレートに以下を記述します。
<?php
$args = array(
'post_type' => 'post', // 投稿タイプ
'posts_per_page' => 10, // 表示件数
'orderby' => 'date',
'order' => 'DESC',
'date_query' => array(
array(
'after' => '2014-11-01',
'before' => '2014-11-10',
'inclusive' => true, // 範囲を含める
),
),
);
$query = new WP_Query($args);
if ( $query->have_posts() ) :
while ( $query->have_posts() ) : $query->the_post(); ?>
<article>
<h2><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></h2>
<p>公開日: <?php echo get_the_date('Y年n月j日'); ?></p>
<?php the_excerpt(); ?>
</article>
<?php endwhile;
else :
echo '<p>指定期間に記事はありません。</p>';
endif;
wp_reset_postdata();
?>
PHP応用ポイント
- 期間を変える →
afterとbeforeの日付を変更するだけ - 月単位で一覧 →
afterを「2014-11-01」、beforeを「2014-11-30」に設定 - 週単位で一覧 →
afterを「monday this week」、beforeを「sunday this week」に設定可能 - ショートコード化 →
functions.phpに登録すれば、固定ページや投稿本文に[posts_by_date after="2014-11-01" before="2014-11-10"]と書くだけで一覧を出せます
まとめ
- 固定期間の記事一覧は
date_queryを使う afterとbeforeを指定すれば柔軟に期間を設定可能- ショートコード化すれば管理画面からも簡単に利用できる


