Googleカレンダーからある日の予定を表示するショートコード

Image

先日、「Googleカレンダーをサイトに貼り付ける方法」について書きました。今度はある一日の予定をGoogleカレンダーから取得して表示してみたいと思います。ある一日の予定を表示できれば、「今日のスケジュール」というようなページを作っておけば自動的にその日の予定を表示することができます。

仕様を考える

仕様を考えてみました。

・Googleカレンダーに取得したいカレンダーのxmlと取得したい日付を渡す
・表示はWordPressのショートコードの形にする
・その日に何も予定がなければ 本日の予定はありません と表示
・予定があれば

表示する形式は

日付< 日付を編集して曜日と祝日を表示するショートコード で表示

タイトル
終日or時間
場所
説明

を表示する。

指定したGoogleカレンダーから予定を取得する方法

「Googleカレンダーをサイトに貼り付ける方法」で書いたように、指定したGoogleカレンダーのxmlを取得するには、

Googleカレンダー 設定ボタン(歯車)>設定 カレンダータブをクリック 公開するカレンダーの名前をクリック

で表示される xml ボタンをクリックした、

です。このxmlphpで取得して中身を見てみます。

というコードを書いて取得した $xml を var_dumpで見てみました。

例えば、

Image

という予定があるのですが、これがどのように取得されているか見ると

のように表示されました。

entry の titleプロパティ で タイトル
entry の contentプロパティで、 
時間
場所
説明

が取ってこれそうです。

ということで作ってみました ryus_google_calendar_day

子テーマfunctions.phpに以下のコードを追加しました。このほか、日付を編集して曜日と祝日を表示するショートコードで追加したコードも使っています。

かなり長くなってしまいましたので、ざっとだけ説明します。

25行目の

は既に作成済みの日付編集functionを呼んでいます。日付を編集して曜日と祝日を表示するショートコードで呼び出されるfunctionに直接処理を書かずに別のfunctionにしてあったので別の所からも呼び出すことが出来るようになっています。

27行目にある

singleevents=true は「繰り返し予定」を他の予定とおなじような形で取得するためにこの指定が必要になります。
orderby=starttimeは開始時刻でソートしたかったのですが、意図したとおりにならなかったので無くてもいいかもしれません(^_^;。

35行目あたりからは contnt プロパティの中身を使いやすく編集しています。

61行目あたりから69行目あたりまでは上記でソートが効かなかったのであとで並べ替えるためのソート用変数をセットして並べ替えています。

function _entryEdit
で、各予定を編集しています。表示形式を変更したい場合はこのfunctionのhtml記述を変更すれば簡単に表示を変えることが出来ます。

使い方:本日の予定、○月○日の予定、本日からむこう1週間の予定

簡単に使い方を書きます。固定ページや投稿ページでショートコードを書くと表示されます。

本日の予定

このように記述するだけです。 サンプル

○月○日の予定

例:2014/11/1の予定

サンプル

本日からむこう1週間の予定

サンプル

こんな感じで簡単に予定を貼り付けることができます~(^^)/

お使いの子テーマにこの機能を載せるために、今回使っているコードをまとめました。functions.phpに追加していただければこの ryus_google_calendar_day が使えるようになります。

function_ryus_google_calendar_day.zip

兎本美佳
ブログを見た人がそのままできたらいいなと思って、できるだけ丁寧に書いています。blogに書いたようなネタの有償対応のご相談は「ゆうそうと」へいただければと思います(^^)/
無償での対応をご希望の場合は、コメントをいただけましたら可能な場合はコメントを返させていただきます。

シェアする

  • このエントリーをはてなブックマークに追加

フォローする

スポンサーリンク
スポンサー広告
トップへ戻る