現在プライベート案件で、とあるジャズトランペット奏者の方のサイトをフルWordPressでリニューアル制作させてもらってます。
で、もちろんライブ予定ページが必要なんですが、固定ページを毎回HTML更新させるわけにもいかん、ということで記事投稿を使って実現する方法をメモします。
要するにこういうのを作りたいわけです。
要件は以下の通りです。
- 未来投稿がサイトに表示されるようにする
- 未来の記事だけをピックアップする
- それを上から日程が近い順に並べる
未来投稿がサイトに表示されるようにする
デフォルトでは投稿日を未来に設定するとタイマーセットになってしまいます。これを普通に記事として表示するにはプラグインを使います。
No Future Post
これをインストールすれば未来の日付の投稿がアーカイブなどで表示されるようになります。
ただしタイマーセット投稿が出来なくなることにご注意ください。
未来投稿だけを昇順で表示する
今回はライブ予定ページに以下のコードを挿入しました。
<?php
function filter_where($where = '') {
$where .= " AND post_date > '" . date('Y-m-d', strtotime('1 days')) . "'";
return $where;
}
add_filter('posts_where', 'filter_where');
query_posts(array(
'cat' => ※記事カテゴリーID,
'order' => ASC,
));?>
<?php if (have_posts()) : ?>
<?while (have_posts()): the_post(); ?>
※ループ中身
<?php endwhile; ?>
<?php else : ?>
※ライブ予定が無い場合のメッセージ
<?php endif; ?>
6行目までが未来投稿だけを取得する仕組みに該当するようです。
※8月21日追記:
上記だとライブ当日(=投稿日当日)のものが未表示になってしまうので、3行目の「1 days」を「0 days」に変更すると、投稿日が終了すると未表示になるよう変更できます。
7行目以降はよくある使い方で、表示対象カテゴリーの指定と並び順の指定(昇順)をしただけです。
自分の場合はこれでなんとか実現できました。
参考サイト
WordPress › フォーラム » 未来と過去の記事をわけた一覧を表示したい
途中のソースを参照したものに一部改変して使いました。
[…] [WordPress] 未来投稿を使ってライブとかイベント予定リストを作る | imasashi.net Related posts: […]
[…] http://imasashi.net/future-info.html […]