SlideShare a Scribd company logo
1 of 21
カスタム3兄弟で作る 
独自イベントカレンダー
自己紹介 
名前:吉田裕介 
株式会社コミュニティコム 
プログラマー 
WordPress歴1年くらい
コワーキングスペース7F 
埼玉県の大宮にある 
コワーキングスペース 
大宮駅徒歩1分 
年中無休で営業してい 
ます! 
http://office7f.com/
今回やりたかったこと 
 7Fで行われるイベントや日々の予約を管理し 
たい 
 従来はGoogleカレンダーで管理 
 適切な情報管理ができない 
 我々のニーズにマッチするプラグインがなかっ 
た 
 自分でイベントカレンダーを作ろう!
GoogleカレンダーではNGだっ 
た点
作成したイベントカレンダー
管理したい情報 
・予約名 
・予約日時 
・予約エリア 
・利用人数 
・代表者の名前 
・代表者の連絡先 
・利用する備品 
  etc...
WordPressでの実装にあたって 
・イベントの登録  → カスタム投稿タイプ 
・予約名      → 投稿タイトル 
・予約日時     → カスタムフィールド 
・予約エリア    → カスタム分類 
・利用人数     → カスタムフィールド 
・代表者の名前   → カスタムフィールド 
・代表者の連絡先  → カスタムフィールド 
・利用する備品   → カスタムフィールド
実装してみたのがこちら
実装に使った機能・仕組み 
 カスタム投稿タイプ 
 カスタム分類(タクソノミー) 
 カスタムフィールド 
 「get_calendar() 」関数
カスタム投稿タイプ 
 投稿、固定ページとは別に、独自に定 
義できる「投稿」のこと 
 ・独立して記事を管理できる 
 ・入力画面を独自にカスタマイズできる 
  実装方法) 
  ・functions.php に記述 
  ・プラグイン(CustomPostTypeUI など)
実装するとこんな感じ①
カスタム分類(タクソノミー) 
 カテゴリー・タグとは別に、独自に定 
義できる「分類」のこと 
 ・カスタム投稿タイプだけに使いたいカテゴリーなどを 
  作成できる 
  実装方法) 
  ・functions.php に記述 
  ・プラグイン(CustomPostTypeUI など)
実装するとこんな感じ②
カスタムフィールド 
 投稿や固定ページに任意の情報(メタ 
データ)を追加する機能 
 ・キーごとにソートしたり、情報をまとめることができ 
る 
 ・入力場所が投稿者にわかりやすい 
  実装方法) 
  ・functions.php に記述 
  ・プラグイン 
   (Custom Field Template、Advanced Custom Fields など)
実装するとこんな感じ③
「get_calendar()」関数 
 コアの関数( wp-include/general-template.php) 
 ・投稿記事をカレンダー表示する関数 
  投稿日で記事を抽出し、記事タイトルを表示する 
  functions.phpにコピーしてカスタマイズ! 
  カスタマイズ内容) 
  ・投稿記事  → カスタム投稿タイプ 
  ・投稿日   → カスタムフィールドの日付 
  ・表示内容  → カスタムフィールドの項目
関数のカスタマイズ例(旧) 
$dayswithposts = $wpdb->get_results( 
"SELECT DISTINCT DAYOFMONTH(post_date) 
FROM $wpdb->posts 
WHERE post_date >= '{$thisyear}-{$thismonth}-01 00:00:00' 
AND post_type = 'post' AND post_status = 'publish' 
AND post_date <= 
'{$thisyear}-{$thismonth}-{$last_day} 23:59:59'", 
ARRAY_N 
);
関数のカスタマイズ例(新) 
$dayswithposts = $wpdb->get_results( 
"SELECT DISTINCT DAYOFMONTH(meta_value) 
FROM $wpdb->posts 
INNER JOIN $wpdb->postmeta ON ID = post_id 
WHERE post_type = '${custom}' 
AND post_status = 'publish' 
AND meta_key = 'event_date' 
AND meta_value BETWEEN '${st}' AND '${ed}' ", 
ARRAY_N 
);
まとめ 
 イベントカレンダー専用の入力画面を設け 
て、自分好みにカスタマイズしたい! 
 → カスタム3兄弟で実装 
 イベントをカレンダー表示したい 
 → コアの関数をカスタマイズ
ご清聴ありがとうございまし 
た!

More Related Content

What's hot

2013 foss4g adventcalender
2013 foss4g adventcalender2013 foss4g adventcalender
2013 foss4g adventcalenderESRI Japan
 
チーム「ラグビー活用」
チーム「ラグビー活用」チーム「ラグビー活用」
チーム「ラグビー活用」Yuki Nakamura
 
20161111 re:Work meetupYamagata2016 酒と仕事とテレワークとぎょり
20161111 re:Work meetupYamagata2016 酒と仕事とテレワークとぎょり20161111 re:Work meetupYamagata2016 酒と仕事とテレワークとぎょり
20161111 re:Work meetupYamagata2016 酒と仕事とテレワークとぎょりGyori Nagafuchi
 
セキュリティ&プログラミングキャンプに参加してから
セキュリティ&プログラミングキャンプに参加してからセキュリティ&プログラミングキャンプに参加してから
セキュリティ&プログラミングキャンプに参加してからShoot Morii
 
2ヶ月で売上約15万を実現したアパレル系webアプリ
2ヶ月で売上約15万を実現したアパレル系webアプリ2ヶ月で売上約15万を実現したアパレル系webアプリ
2ヶ月で売上約15万を実現したアパレル系webアプリMasaru Gushiken
 
SetucoCMSのご紹介
SetucoCMSのご紹介SetucoCMSのご紹介
SetucoCMSのご紹介Erina Takei
 

What's hot (7)

2013 foss4g adventcalender
2013 foss4g adventcalender2013 foss4g adventcalender
2013 foss4g adventcalender
 
Firebase0901
Firebase0901Firebase0901
Firebase0901
 
チーム「ラグビー活用」
チーム「ラグビー活用」チーム「ラグビー活用」
チーム「ラグビー活用」
 
20161111 re:Work meetupYamagata2016 酒と仕事とテレワークとぎょり
20161111 re:Work meetupYamagata2016 酒と仕事とテレワークとぎょり20161111 re:Work meetupYamagata2016 酒と仕事とテレワークとぎょり
20161111 re:Work meetupYamagata2016 酒と仕事とテレワークとぎょり
 
セキュリティ&プログラミングキャンプに参加してから
セキュリティ&プログラミングキャンプに参加してからセキュリティ&プログラミングキャンプに参加してから
セキュリティ&プログラミングキャンプに参加してから
 
2ヶ月で売上約15万を実現したアパレル系webアプリ
2ヶ月で売上約15万を実現したアパレル系webアプリ2ヶ月で売上約15万を実現したアパレル系webアプリ
2ヶ月で売上約15万を実現したアパレル系webアプリ
 
SetucoCMSのご紹介
SetucoCMSのご紹介SetucoCMSのご紹介
SetucoCMSのご紹介
 

カスタム3兄弟で作る独自イベントカレンダー