Diese Präsentation wurde erfolgreich gemeldet.
Wir verwenden Ihre LinkedIn Profilangaben und Informationen zu Ihren Aktivitäten, um Anzeigen zu personalisieren und Ihnen relevantere Inhalte anzuzeigen. Sie können Ihre Anzeigeneinstellungen jederzeit ändern.
カスタム3兄弟で作る 
独自イベントカレンダー
自己紹介 
名前:吉田裕介 
株式会社コミュニティコム 
プログラマー 
WordPress歴1年くらい
コワーキングスペース7F 
埼玉県の大宮にある 
コワーキングスペース 
大宮駅徒歩1分 
年中無休で営業してい 
ます! 
http://office7f.com/
今回やりたかったこと 
 7Fで行われるイベントや日々の予約を管理し 
たい 
 従来はGoogleカレンダーで管理 
 適切な情報管理ができない 
 我々のニーズにマッチするプラグインがなかっ 
た 
 自分でイベントカレンダーを作...
GoogleカレンダーではNGだっ 
た点
作成したイベントカレンダー
管理したい情報 
・予約名 
・予約日時 
・予約エリア 
・利用人数 
・代表者の名前 
・代表者の連絡先 
・利用する備品 
  etc...
WordPressでの実装にあたって 
・イベントの登録  → カスタム投稿タイプ 
・予約名      → 投稿タイトル 
・予約日時     → カスタムフィールド 
・予約エリア    → カスタム分類 
・利用人数     → カスタム...
実装してみたのがこちら
実装に使った機能・仕組み 
 カスタム投稿タイプ 
 カスタム分類(タクソノミー) 
 カスタムフィールド 
 「get_calendar() 」関数
カスタム投稿タイプ 
 投稿、固定ページとは別に、独自に定 
義できる「投稿」のこと 
 ・独立して記事を管理できる 
 ・入力画面を独自にカスタマイズできる 
  実装方法) 
  ・functions.php に記述 
  ・プラグイン(...
実装するとこんな感じ①
カスタム分類(タクソノミー) 
 カテゴリー・タグとは別に、独自に定 
義できる「分類」のこと 
 ・カスタム投稿タイプだけに使いたいカテゴリーなどを 
  作成できる 
  実装方法) 
  ・functions.php に記述 
  ・プ...
実装するとこんな感じ②
カスタムフィールド 
 投稿や固定ページに任意の情報(メタ 
データ)を追加する機能 
 ・キーごとにソートしたり、情報をまとめることができ 
る 
 ・入力場所が投稿者にわかりやすい 
  実装方法) 
  ・functions.php に...
実装するとこんな感じ③
「get_calendar()」関数 
 コアの関数( wp-include/general-template.php) 
 ・投稿記事をカレンダー表示する関数 
  投稿日で記事を抽出し、記事タイトルを表示する 
  function...
関数のカスタマイズ例(旧) 
$dayswithposts = $wpdb->get_results( 
"SELECT DISTINCT DAYOFMONTH(post_date) 
FROM $wpdb->posts 
WHERE post...
関数のカスタマイズ例(新) 
$dayswithposts = $wpdb->get_results( 
"SELECT DISTINCT DAYOFMONTH(meta_value) 
FROM $wpdb->posts 
INNER JOI...
まとめ 
 イベントカレンダー専用の入力画面を設け 
て、自分好みにカスタマイズしたい! 
 → カスタム3兄弟で実装 
 イベントをカレンダー表示したい 
 → コアの関数をカスタマイズ
ご清聴ありがとうございまし 
た!
Nächste SlideShare
Wird geladen in …5
×

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

3.448 Aufrufe

Veröffentlicht am

Veröffentlicht in: Ingenieurwesen
  • Als Erste(r) kommentieren

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

  1. 1. カスタム3兄弟で作る 独自イベントカレンダー
  2. 2. 自己紹介 名前:吉田裕介 株式会社コミュニティコム プログラマー WordPress歴1年くらい
  3. 3. コワーキングスペース7F 埼玉県の大宮にある コワーキングスペース 大宮駅徒歩1分 年中無休で営業してい ます! http://office7f.com/
  4. 4. 今回やりたかったこと  7Fで行われるイベントや日々の予約を管理し たい  従来はGoogleカレンダーで管理  適切な情報管理ができない  我々のニーズにマッチするプラグインがなかっ た  自分でイベントカレンダーを作ろう!
  5. 5. GoogleカレンダーではNGだっ た点
  6. 6. 作成したイベントカレンダー
  7. 7. 管理したい情報 ・予約名 ・予約日時 ・予約エリア ・利用人数 ・代表者の名前 ・代表者の連絡先 ・利用する備品   etc...
  8. 8. WordPressでの実装にあたって ・イベントの登録  → カスタム投稿タイプ ・予約名      → 投稿タイトル ・予約日時     → カスタムフィールド ・予約エリア    → カスタム分類 ・利用人数     → カスタムフィールド ・代表者の名前   → カスタムフィールド ・代表者の連絡先  → カスタムフィールド ・利用する備品   → カスタムフィールド
  9. 9. 実装してみたのがこちら
  10. 10. 実装に使った機能・仕組み  カスタム投稿タイプ  カスタム分類(タクソノミー)  カスタムフィールド  「get_calendar() 」関数
  11. 11. カスタム投稿タイプ  投稿、固定ページとは別に、独自に定 義できる「投稿」のこと  ・独立して記事を管理できる  ・入力画面を独自にカスタマイズできる   実装方法)   ・functions.php に記述   ・プラグイン(CustomPostTypeUI など)
  12. 12. 実装するとこんな感じ①
  13. 13. カスタム分類(タクソノミー)  カテゴリー・タグとは別に、独自に定 義できる「分類」のこと  ・カスタム投稿タイプだけに使いたいカテゴリーなどを   作成できる   実装方法)   ・functions.php に記述   ・プラグイン(CustomPostTypeUI など)
  14. 14. 実装するとこんな感じ②
  15. 15. カスタムフィールド  投稿や固定ページに任意の情報(メタ データ)を追加する機能  ・キーごとにソートしたり、情報をまとめることができ る  ・入力場所が投稿者にわかりやすい   実装方法)   ・functions.php に記述   ・プラグイン    (Custom Field Template、Advanced Custom Fields など)
  16. 16. 実装するとこんな感じ③
  17. 17. 「get_calendar()」関数  コアの関数( wp-include/general-template.php)  ・投稿記事をカレンダー表示する関数   投稿日で記事を抽出し、記事タイトルを表示する   functions.phpにコピーしてカスタマイズ!   カスタマイズ内容)   ・投稿記事  → カスタム投稿タイプ   ・投稿日   → カスタムフィールドの日付   ・表示内容  → カスタムフィールドの項目
  18. 18. 関数のカスタマイズ例(旧) $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 );
  19. 19. 関数のカスタマイズ例(新) $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 );
  20. 20. まとめ  イベントカレンダー専用の入力画面を設け て、自分好みにカスタマイズしたい!  → カスタム3兄弟で実装  イベントをカレンダー表示したい  → コアの関数をカスタマイズ
  21. 21. ご清聴ありがとうございまし た!

×