MemoWordPressでリスト型カレンダー表示機能を追加してみた子どもの夜泣きで慢性的睡眠不足なひつじさんです。以前WordPressで作ったダメ系ライブカレンダーの要望に「カレンダー表示機能を付けて欲しい!」とあり、設置してみました。その設置方法のメモです。強引なやり方だと思いますが、私の知識ではこのやり方でしか実装できませんでした。その点ご留意のうえご覧ください。1年以上前の記事です。情報が古くなっている可能性があります。・カスタムフィールドで追加してある日付を元にカレンダー表示にしたい・祝祭日も表示したい・WordPressのdata.phpは使わない・同じ日にイベントが表示されることもある投稿日時は投稿日時で使う場合もあるので、data.phpは使用しないやりかたにしました。カレンダーの表示は固定ページを一つ設けて、そこで大きく表示させます。コードサンプル以下のようなやりかたでカレンダー表示しています。こんな感じのコードを元に、こんなカレンダーができてます。$default;}カレンダー表示用テンプレート内で、表示する月のイベントの情報を扱いやすい配列に一度格納。function.phpのカレンダー表示用関数を叩いて日付の合う場所に配置、というやり方です。・Googleカレンダーから祝日情報を取得。Flash・phpで日本の祝日や振替休日を出力する。Toro_Unitを参考にしました。fnnction.phpのagv()は連想配列でキーがない場合の警告回避対策です。Lab少しずつではありますが、ダメ系ライブカレンダー、進化してきております。07:39はじめまして。初心者でして的を射ない質問でしたらすみません。こちらのページを参考にやってみましたが、カレンダーを表示するところまではできたのですがカレンダー上にイベントを表示する方法が分かりません。”ldate”というカスタムフィールドに日付を入力するという風に思うのですがこれでは表示されません。恐れ入りますが方法をご教授いただけると幸いです。10:49kuuさん初めまして。ソース等を見ないと分からない部分も多いのですが、考え方としては合っていると思います。カスタム投稿タイプやカスタムフィールドのデータ自体が上手く取得出来ていない。カスタムフィールドで入力されている日付の形式が違うの2つが考えられます。カレンダー表示ではなく、普通にカスタム投稿タイプとカスタムフィールドを表示してみることで、きちんと取得出来ているかどうか確認出来ます。カスタムフィールドの日付の形式が「2014年04年03日」という形でないと上手く表示ができません。その辺りを一度チェックしてみてください。15:00早速のご回答ありがとうございました。返事が遅くなりまして申し訳ありません。2番の日付の形式が間違えていました。ありがとうございました。()と表示されてしまいます。お示しいただいているソースをそのままコピペでやっていますので、適用しているテーマに問題があるのかもしれませんがどこが間違えているのかお心当たりがありましたらご回答をいただければと思います。質問ばかりで申し訳ありませんがよろしくお願いいたします。10:01いえいえ、表示が出来たようで何よりです。()と表示されてしまいます。href="'.$eln[2].'">'.$eln[1].'</a>';}と修正すると表示されなくなります。この部分がカレンダーに表示されるタイトルとリンク部分になります。一度チェックしてみてください。10:32ご回答ありがとうございます。教えていただいた修正で思い通りの表示になりました。ありがとうございました。09:22返信遅くなってスミマセン。思い通りの表示が出来たようでよかったです。カスタムフィールドの日付を2014/04/22にしたいとのことですが、まず、page-calendar.phpの12〜18行めにある日付の指定4箇所を$_GET['ey']."年".$_GET['em']."月01日"⇒$_GET['ey']."/".$_GET['em']."/01"というかんじでに変更します。$matchDate);の正規表現パターンを/\d{2}$/に変更すればできます。実際には試していないですが、これで出来るようになると思いますよ。15:13ご回答ありがとうございます。教えていただいたようにやってみたのですが反映されないようです。現状でも既にほぼ思い通りの使用ができております。何度もお手数をおかけするのも恐縮なのでもし別バージョンの公開等のタイミンがありましたら一度見ていただければ幸いです。00:23返信おそくなりました。>教えていただいたようにやってみたのですが反映されないようです。今はちょっと実際に検証してみることが難しいので、やってみる機会がありましたら、その時にまたお返事しますね。お力になれずに申し訳ないです。16:59こんにちわ、横入りでスイマセン。私も日付のフォーマットがXXXX.XX.XXだったので参考になれば。$i;}と変更すれば、いけました!情報共有まで。14:16上記コードをそのまま記載したら、うまく表示されました。ありがとうございました。変更したい点があり、やっていますがうまくいきません。http://www.rku-bbc.com/schedule/このサイトのスケジュールのように、内容をリンクなしで表の中にテーブルを使って埋め込みたいです。入力した項目を上記サイトのように表示させたいです。それからh4のタイトルの上になぜか入力された分の日付がずらりと記載されてしまいます。申し訳ないのですが、ご教授いただけると助かります。21:42ひたちさん初めまして。返信遅くなって申し訳ありません。参考サイトのように表示するコンテンツを増やす場合、まず、page-calendar.phpの32〜40行目で以下のようにデータを格納します。$eventData);?>そして、function.phpの12〜15行め辺りでリストのヘッダーを作ります。<tr><td>日</td><td>曜日</td><td>カテゴリー</td><td>大会名</td><td>対戦チーム</td><td>勝敗</td><td>スコア</td><td>場所</td></tr>EOM;次に、function.phpの52〜56行め辺りを以下のように変更する事で出来るようになると思います。$dataCat."</td><td>".$dataName."</td><td>".$dataTeam."</td><td>".$dataIsuue."</td><td>".$dataScore."</td><td>".$dataPlace."</td></tr>\n";カスタムフィールドのデータで必要なものをきちんと格納し、表組の形を整えています。記事のサンプルと違うのは、eventDataの書き出しです。それぞれを分かりやすい変数に格納し、必要なセルにはめているので、データがあれば表示されるようになるはずです。検証していないので分かりませんが、たぶんこの方法でいけると思います。h4のタイトルの上になぜか入力された分の日付がずらりと記載されてしまいます。部分がどういう状況なのかちょっと分からないので、お答えできないです。23:10ご回答ありがとうございました。上記コードに変更したら、ばっちり表示されました!回答を待っている間にいろいろと試してみたのですが、全くうまくいかず。本当に本当に助かりました。ありがとうございました。h4のタイトルの上になぜか入力された分の日付がずらりと記載されてしまいます。これに関してはいじっていたら表示がいつの間にか消えていました。それでお願いなんですが、もう一点実装させたい部分があります。リンクはさせないといいましたが、結果が出てスコアを入力したら試合詳細を見れるようにリンクできたらなあと考え、記事内のコードを参考にやってみましたが、これまたうまくいきませんでした。スコアの部分をクリックすると詳細ページ(singleページ)が見れるようにしたいです。雨天などで中止になった場合は詳細はいらないので「中止」と入力した場合はリンクさせないということは可能でしょうか?それぞれ今回教えていただいたコードにどのように追記したらよろしいでしょうか?お忙しいところ申し訳ないのですが、再度ご教授ください。13:57質問ばかりで申し訳ないのですが、追加でお願いします。同じ日に試合が2試合とか3試合とかの時に入力すると、項目がすべて横並びになってしまいます。グラウンド1グラウンド2というふうに各項目が各td内で横に続けて並んで表示されてしまいます。グラウンド2本当に申し訳ないのですが、これが実装できないと前に進めず困っています。22:48ひたちさん返信遅くなりました。最初のコメントの試合詳細のリンクですが、Wordpressとはいえ、結局はphpなので、スコアに値がある場合はリンクを貼る、という条件分岐で対処ができます。前回の返信の55行目で、それぞれのtdに表示する値を変数に格納しているので、そこで条件分岐させれば良いと思います。次のコメントの、同日に複数の試合がある場合に改行させたい時。それぞれの結果をspanタグなどで囲み、CSSでdisply:block;等すれば良いと思います。'<span>'.$eln[8].'</span>';}分かりやすくコードを記載して返信していますが、記事内容とだんだん離れた質問内容になっています。(phpの条件分岐や、CSSの話になっているので)先にも書きましたが、wordpressはphpです。phpやcssについては是非ご自身で勉強なさってください。10:54返信ありがとうございました。PHPの本などを読んでやっていたのですが、なかなかうまくいかずご迷惑をおかけしました。教えていただいた内容で実装できそうです。ありがとうございました。おっしゃる通りPHPの勉強をもっとしていこうと思います。この度は本当にありがとうございました。15:22こんにちは!以前質問をさせていただき、無事完成してアップすることができました。ところが急にカレンダーの上にエラーコードが出ていました。389というものです。調べたのですがよくわかりません。こちらのサンプルサイトをふとのぞかせてもらったら同じようなエラーコードが出ていました。対処方法が分かれば教えてください。16:17返信遅くなってスミマセン。こちらでも今調べているところなので、分かりましたら記事にて対処方法を追記したいと思います。グーグルの祝日用データを取得して使っているので、その辺りに変更があったのではないかなーと思っています。17:37私のサイトにも、12月30日から急にWarningが表示されました。やってみたのですが、上手くいかず。同時に制作していたテスト用のサイトのものは何故か大丈夫で、これを参考に、同様に新しいデータベースに「手動のFTP」で「wordpress4.01」をインストールすることで緊急処置として解決しました。自動インストールは、「wordpress4.1」になってダメでした。10:00リバーさん返信遅くなりました。コメントありがとうございます。うーん、ナンバリングが関係しているのでしょうか?こちらでも色々と試してみたいと思います。12:01こんにちは。以前質問しましたWarningのエラーコード、解決しましたのでご報告します。下記サイトの「現在使用可能なコード」に書き換えたところ、エラーコードが消え、また問題なくカレンダーも表示されています。APIから祝日を取得する方法」という記事です。http://www.unionnet.jp/develop/google%E3%82%AB%E3%83%AC%E3%83%B3%E3%83%80%E3%83%BC-api%E3%81%8B%E3%82%89%E7%A5%9D%E6%97%A5%E3%82%92%E5%8F%96%E5%BE%97%E3%81%99%E3%82%8B%E6%96%B9%E6%B3%95/バックアップをとって試してみてください。Koutsukiさんもリバーさんもありがとうございました。$year.$month.$i;}に変更する必要もあるようです。(まだ不完全だったら他の方報告お願いします)ちょっとつまづいたので記録を残しておきます。10:32はじめまして。コードサンプルと皆様のコメントのおかげで、実装できました。‘BETWEEN’)),で指定するとは思うのですが、それ以降がさっぱり分からず。10:28こんにちは、はじめまして。こちらの記事を参考に、自由度の高いカレンダーを作りたくて参考にさせていただいてます。pro」を使用していますが、イベント開催日をデイトピッカーで再現しようとしたところ、日付フォーマットがどうもマッチしないようです。pro版は「Y年m月d日」と表示されるように設定してあって、カレンダー以外の表示は、the_field(‘field_name’);で、設定通りに表示されます。コメントする返信をキャンセルする。(@mei331)神奈川在住。web作ったり、文字を書いたりしてる黒いひつじさん。育児も好きなことも欲張りながらお仕事してます。Mei.Koutsuki。