WordPress 未来日付の記事を表示

/ WordPress / Comment[0]

イベント開催予定日などを表示するページで、未来の日付を指定して投稿するとWordPressでは強制的に予約投稿となってしまいます。
ですが、query_posts関数を使えば未来日付の記事を引っ張ることが可能です。

<html>
<head>
<title>test</title>
</head>

<body>

<h1>開催予定のイベント</h1>
<ul>
  <?php query_posts( $query_string . '&post_type=event&post_status=future' ); ?>
  <?php while( have_posts() ) : the_post(); ?>
  <li><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a> <?php the_time( 'Y-m-d' ); ?>
  <?php endwhile; wp_reset_query(); ?>
</ul>

<hr />

<h1>開催したイベント</h1>
<ul>
  <?php query_posts( $query_string . '&post_type=event&post_status=publish' ); ?>
  <?php while( have_posts() ) : the_post(); ?>
  <li><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a> <?php the_time( 'Y-m-d' ); ?>
  <?php endwhile; wp_reset_query(); ?>
</ul>

</body>
</html>

WordPressのpost_statusには主にpublish,future,draft,privateなどがあります。記事に設定された投稿時間が現在時刻よりも大きい場合はpost_status=futureとなります。
なのでquery_postsでpost_statusがfutureになっているものを引っ張ってくれば良い話です。
このやり方に気づくまでかなり苦労しました。関数で強制的にpublishにしてみたり、総記事数をカウントして現在時刻と比較して未来記事と今までの記事を分けようとしたり...今までの苦労は何だったのでしょうか。
バージョンは4.0です。

関連記事

コメント

:
:
:
:
:
管理人のみ表示を許可