カスタムポストタイプのイベントをjQueryベースのFullCalendarにロードしますか?
-
16-10-2019 - |
質問
ここに私が3時間以上解決しようとして費やした質問がありますが、私が取る各アプローチは私のためにうまくいかないことになります。
私がやろうとしているのは、このOpenSource Ajaxカレンダースクリプトを利用することだけです。
また、特定の投稿タイプ内のすべての投稿をエントリに表示します。このイベント内の各投稿には、次のカスタムフィールドを備えたカスタムメタボックスがあります。
- イベントカテゴリ
- イベント開始日
- イベント開始時間
- イベントの終了日
- イベント終了時間
最も基本的なレベルでは、「イベント開始日」と「イベント開始時間」に基づいて、該当するカレンダーボックスに表示され、該当するイベント投稿の詳細ページにリンクするために、各投稿が必要です。
理想的な状況では、各イベントカテゴリを独自の色のカテゴリにしたいと思っていました。 "event_end_date"
それは開始日とは異なります。
誰もがこれを以前に行ったことがあり、適用されるコードを過ぎてこれらのいずれかを導入できます。これは、WordPressコミュニティにとっても非常に価値があると思います。
解決
FullCalendar いい発見です。
あなたが書く必要があるように私には見えます ショートコード (これをここで行う方法を示しています):
その後 ショートコード内のフルカレンダーを呼び出すコードを生成する.
その後、JavaScriptアレイを生成するためにコードを記述するか、JSONフィードを参照する必要があります。
これがスタンドアロンに入れることができるコードです .PHP
呼び出すことができるファイル /fullcalendar-json-feed.php
またはあなたが好きなものは何でも。コードは、呼ばれるカスタム投稿タイプを照会します event
Webサイトのルートディレクトリで実行され、JSONフィードが生成され、一部があると仮定します アレイ/フィードを入力するために必要なカスタムフィールド. (残りのクエリとカスタムフィールドの詳細を残します。 ノート 私は実際にこれをFullCalendarでテストしなかったので、少し微調整するかもしれません):
<?php
/*
* See: https://wordpress.stackexchange.com/questions/1447/
*
*/
include "wp-load.php";
global $wpdb;
header('Content-Type:application/json');
$events = array();
$result = new WP_Query('post_type=event&posts_per_page=-1');
foreach($result->posts as $post) {
$events[] = array(
'title' => $post->post_title,
'start' => get_post_meta($post->ID,'_start_datetime',true),
'end' => get_post_meta($post->ID,'_end_datetime',true),
'allDay' => (get_post_meta($post->ID,'_all_day',true) ? 'true' : 'false'),
);
}
echo json_encode($events);
exit;
上記のコードと非常によく似たコードで配列オプションを生成できます。それでも、これはあなたが正しくなるために少しコーディングするでしょう。たぶん、あなたはすでに構築されているソリューションを使用したいだけですか? WordPressのカレンダーに関するQ&Aディスカッションは次のとおりです。