終了したイベントを自動的に過去のイベントにする

2012/05/16追記・修正

@jim0912さんよりご指摘を頂きましたのでhome.phpのソースを修正しております。ありがとうございます。

https://twitter.com/#!/jim0912/status/202175365601439744
var_dump(date( 'Y/m/d H:i:s' )); //string '2012/05/15 15:06:01' (length=19)
var_dump(date_i18n( 'Y/m/d H:i:s' )); //string '2012/05/16 00:06:01' (length=19)

上記をvar_dumpしたところ確かにdate()だとズレてますね。(2012/05/16 0時頃確認)
というわけでdate_i18n()を使いましょう。
関数リファレンス/date i18n – WordPress Codex 日本語版


先日おじゃましたWordBench神戸分科会の「案件で詰まっていることを晒してみる」であった以下の質問に答えてみました。
詳細については案件で詰まっていることを晒してみる #wbkobe – by shigemk2を参照。

トップページにイベントの部分があるけど、終わったら「過去のイベント」に移行したいこれを自動化するにはどうしたらよいのだろうか。

覚えている限りの仕様としては

  • トップの「開催中のイベント」に”2012/05/14~2012/06/01 イベント名”形式で出力
  • 終了したものに関しては「過去のイベント」部分に同様の形式で出力

という訳で思い浮かんだのがカスタムフィールドを用いて開催日・終了日を設定、終了日の値を元に振り分けるというもの。

Custom Field Templateプラグイン設定

カスタムフィールドの設定はCustom Field Templateプラグインに任せることに。
インストール後、”設定 > カスタムフィールドテンプレート > テンプレートコンテンツ”に以下を記述。

[start_date]
type = textfield
label = 開始日
date = true
dateFirstDayOfWeek = 0
dateFormat = yyyy/mm/dd
startDate = (new Date()).asString()

[end_date]
type = textfield
label = 終了日
date = true
dateFirstDayOfWeek = 0
dateFormat = yyyy/mm/dd
startDate = (new Date()).asString()

投稿ページのカスタムフィールドテンプレートに開催日・終了日のDatepickerが追加されたのでイベント日時はここで設定。

home.phpの設定

出力部分に関しては以下の通り。meta_queryでカスタムフィールドの値を元に検索しています。meta_queryの使い方に関しては query_posts(WP_Queryクラス)でカスタムフィールドを使う:WordPress私的マニュアル を参照。

<section>
	<h1>開催中のイベント</h1>
	<?php
	$current_date = date_i18n( 'Y/m/d' );
	$args = array(
		'meta_query' => array(
			array(
				'key' => 'end_date',
				'value' => $current_date,
				'compare' => '>=',
				'type' => 'DATE'
			)
		)
	);
	$output = '';
	query_posts( $args );
	if ( have_posts() ) :
		$output .= '<dl>';
		while ( have_posts() ) : the_post();
			$output .= '<dt>' . get_post_meta( $post->ID, 'start_date', true ) . '~' . get_post_meta( $post->ID, 'end_date', true ) . '</dt>';
			$output .= '<dd>' . get_the_title() . '</dd>';
	endwhile;
		$output .= '</dl>';
		echo $output;
		wp_reset_query();
	else :
		// イベントがない場合の処理
		echo '<p>イベントないよ~</p>';
	endif;
	?>
</section><!-- /section -->
<section>
	<h1>終了したイベント</h1>
	<?php
	$current_date = date_i18n( 'Y/m/d' );
	$args = array(
		'meta_query' => array(
			array(
				'key' => 'end_date',
				'value' => $current_date,
				'compare' => '<',
				'type' => 'DATE'
			)
		)
	);
	$output = '';
	query_posts( $args );
	if ( have_posts() ) :
		$output .= '<dl>';
		while ( have_posts() ) : the_post();
			$output .= '<dt>' . get_post_meta( $post->ID, 'start_date', true ) . '~' . get_post_meta( $post->ID, 'end_date', true ) . '</dt>';
			$output .= '<dd>' . get_the_title() . '</dd>';
	endwhile;
		$output .= '</dl>';
		echo $output;
		wp_reset_query();
	else :
		// イベントがない場合の処理
		echo '<p>イベントないよ~</p>';
	endif;
	?>
</section><!-- /section -->

ちゃちゃっと書いたのでいろいろ問題あるかもですねー。

「第3回WordPressお茶会 WordBench香川」を開催しました

2012/04/21(土)[13:00~17:30]にデザインラボラトリー蒼様をお借りして「第3回WordPressお茶会 WordBench香川」を開催しました。

リピート参加者、新規ご参加合わせて計11名での開催となりました。
今回は新規の方が2名いらっしゃったのでコミュニティとしては少しずつですが前進してるかなーと。

前回、WordBench香川は(※土井主催のに関しては)だらだらーでいきましょう、ということに決まったので今回もノーテーマでコーヒーを飲みつつの雑談となりました。
ということで本当に何も決めずの開催だったのですが、いつもながら参加者の皆さんがいろいろと提供してくれるので話題には事欠きませんでした。
覚えている限りでは、WordPressについては、テーマ作成の流れ、運用、カスタム投稿タイプ周り(特に勉強になりました!)等。今回は企業でWordPressを使用されている方が参加されていたのでVPSや運用について聞けて為になりました。

後はbaserCMS、Movable Type、a-blog cms、SOY CMS、concrete5あたりの各種CMSについてやカメラについて盛り上がってたようです。WordPress好きはカメラ好きが多いというのは本当ですね。5D Mark IIだったりD800だったりでD40x所持者としては形見が狭いです…

あと、WordBench神戸さんがIT勉強会スタンプラリーに参加する、という情報をWordBenchで見かけたのでWordBench香川コミュニティも参加してみました。(IT勉強会スタンプラリー詳細についてはリンク先を参照ください。)
ただ、香川では他に参加しているコミュニティが今のところ無いはずなのでスタンプを集めようと思ったら大都会岡山に行くか神戸・大阪に行くかしないのでちょっと難しいですね。というわけで香川でも参加コミュニティ増えて欲しいです。
(スタンプラリー用シール作成に関しては@zamojojoさん、@styledesignさんにご協力頂きました。ありがとうございます!!)

photo by: style-design

ちょこっとだけ一人反省会。
いつもノーテーマの雑談だけやってていいのかなーという葛藤はあって、きちんとしたテーマ作成なり、もくもくなり、8時間耐久なりもやったほうがいいのではというのは考えるんだけどスキルが足りなかったり、しゃべるのが苦手だったりで実現するのは難しいですね。(普段の仕事をこなしつつイベント運営されている方凄い!!)
ただ、今回参加者の方からここら近郊でカンファレンス形式のイベントはあるけどお茶会みたいに交流できるイベントがないのでありがたい、と言って頂いたので励みになりました。
というわけでとりあえず「WordPressお茶会」はナンバリングで続けていきたいですね。
コミュニティがもう少し成長したら勉強会っぽいこともたまに出来るようになればいいかな。

あと、今回twitterでハッシュタグつけて実況とか全くしませんでしたが、WordPressお茶会はカンファレンスみたいに喋り手・聞き手が分かれてなくて参加者全員が喋り手であり聞き手で常に忙しいので現実的に実況は無理ですね。
まあ参加者だけが楽しんでしまうクローズド?な集まりになってしまいますが致し方ないですね。

という訳で次回「第4回WordPressお茶会 WordBench香川」の告知ですが、現在のところ2012/6/30(土)を予定しておりますので興味がありましたらご参加頂ければと思います。

* * *

WordBench香川に関してご意見・ご要望等ありましたら@show_webまでお願いします。

「第2回WordPressお茶会 WordBench香川」を開催しました

2012/02/11(土)[13:00~17:30]にデザインラボラトリー蒼様をお借りして「第2回WordPressお茶会 WordBench香川」を開催しました。

前回ご参加、新規ご参加合わせて8名+主催者土井の9名での開催となりました。

今回は私が忙しかったこともあり何も準備出来なかったのでノーテーマで雑談+@dr_covaさんによる「WordPressのセキュリティ対策について」「スマホでWordPress管理」のLTという内容に。


photo by: style-design

雑談は特にネタも用意せずだったのですが、さすがにWebな人が集まっているだけあっていろいろ伺うことができました。
途中から島に分かれてだったので分かる範囲になりますが、ユーザビリティや各種CMS、WordPress FAQ、LESS・SCSS(Sass)、うどん、イベント運営、お金の話、等々。
WordBench香川独特のだらだらな流れのせいか@dr_covaさんのLTも片方の島でいつの間にか?というわけできちんと聞けずでした。また別の機会に拝聴する機会があれば。
WordPressサイト構築に関する濃ゆい話もしてたようなのでそれに関してもちょっと聞きたかったです。

今後のWordBench香川の流れについて参加者さんに意見を頂戴したところ、前回・今回みたいなだらだらーな流れで(が?)良いというご意見だったので今後も特に「勉強会」みたいなのではなく、ノーテーマで集まって雑談しましょうみたいになると思います。何かネタがあったらLTでちょこっと話してもいいですし。
というわけで「WordPress勉強会」を求めている方はきちんとされてる他Benchへのご参加をお勧めします。

いつもながら長時間の集まりになってしまいましたが参加者の皆さんありがとうございました。次回もよろしくお願いします。
また、前回に続き場所を提供頂きましたデザインラボラトリー蒼様ありがとうございました。

次回「第3回WordPressお茶会 WordBench香川」は4月予定。
今回の感じだともう少し人入れそうなので次回は13人くらいで開催したいですね。

あと、特に内緒じゃないですけどあれなイベントも是非やりましょう!!

* * *

WordBench香川に関してご意見・ご要望等ありましたら@show_webまでお願いします。