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

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

今回は新規2名を含む計8名の方にご参加での開催となりました。
内容としてはいつも通りノーテーマでのだらだら喋るだけ、土井によるWordPressテーマ構築ハンズオン、ライトニングトークの3本。

ハンズオンの内容としては『WordPress 3.x (速習デザイン)』のCafe Miraggioテーマを参考にトップページに通常の投稿ループに加えカスタム投稿タイプのループを出力、及びカスタム投稿タイプではカスタムフィールドを用いて追加の要素を表示させよう、という内容を考えていました。
Cafe Miraggioテーマの使用をご快諾くださった@jim_0912さんありがとうございました。


photo by: style-design

参加者さんにとって初めてのテーマだったので全体的なテーマの構造について、次いでheader.phpの内容を一通り説明して、という流れになったのですがCafe Miraggioテーマではheader.php内に独自関数を使用していたのでfunctions.phpへ飛んでその説明、更にはその中のWordPress関数の説明のためにCodexに飛んでその説明と、脱線しまくりになってしまい肝心のループまで辿りつけなかったので反省です。
ループメインのハンズオンの場合header.php等は「こういうものですよ」という前提で進めないと駄目ですね。
来月11/03に開催されるWordCamp Osaka 2012に各WordBenchの方もたくさんいらっしゃると思うのでハンズオン含めWordBench運営について意見を頂戴したいですね。

トーク班は今回は技術寄りの方が多かったようでAndroidやらRuby、HTML5の話題で盛り上がっていたようです。
その場でも話題にしましたが、ATNDで参加登録された方が技術者の方の場合、私だと対応できないので「相手できるよ!」って方がいらっしゃったら是非参加してい頂けるとありがたいです。

LTは@_nobinobiruさんによる「jQuery+HTMLで作ったフロントエンドにBackboneを導入」、@styledesignさんによる「逆に考えるんだ!セミナーイベント規模を小さく小さくして個人レッスンに近いかたちにするといいよ」の2本立て。

@_nobinobiruさんのLTはBackbone.jsの説明から入って実演、ソース解説という流れでしたが私が理解できたのはほんの一部ですのでこちらで説明しきれませんので興味のある方は@_nobinobiruへリプライを。
感想としては「知られてないだけでこんなすごい人がまだまだいるんだ、しかも若い!」の一言に尽きます。

@styledesignさんのLTは「逆に考えるんだ!セミナーイベント規模を小さく小さくして個人レッスンに近いかたちにするといいよ | スタイルデザインWeblog」の内容をざっくりと。
イベント・勉強会のスタイルについてですがこちらはとても共感。私がこうしていきたいって考えているWordBench香川コミュニティのあり方がまさに説明されているなと。

というわけでハンズオンはいつも通りグダグダになってしまい反省点も多々ありますが、全体的には楽しく開催できたし参加者のかたにも満足して頂けたのではないかなと。

次回「第7回WordPressお茶会 WordBench香川」は12月中旬くらいに開催予定(未定)です。
が、その前にWordPressのお祭りWordCampが大阪で開催されますので、まずはそちらを楽しみたいですね!!

WordCamp Osaka 2012は2012/11/03(土)天満研修センターにて開催。

WordCamp Osaka 2012

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

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までお願いします。