it-swarm-ru.tech

Загрузка пользовательских событий типа сообщений в основанный на jQuery FullCalendar?

Вот вопрос, который я потратил более 3 часов, пытаясь решить, но каждый подход, который я выбрал, в итоге не работает для меня.

Все, что я пытаюсь сделать, это использовать скрипт календаря ajax с открытым исходным кодом:

и записи должны отображать все сообщения определенного типа. Для каждого из сообщений в этом типе сообщения о событии у меня есть настраиваемый метабокс со следующими настраиваемыми полями:

  • категория события
  • дата начала мероприятия
  • время начала мероприятия
  • дата окончания мероприятия
  • время окончания события

На самом базовом уровне мне просто нужно, чтобы каждое сообщение отображалось в соответствующем поле календаря на основе "даты начала события" и "времени начала события" и ссылки на соответствующую страницу сведений о событии.

В идеальной ситуации я искал, чтобы каждая категория событий имела свой собственный цвет и чтобы каждое событие охватывало несколько дней, если у соответствующего события есть "event_end_date", который отличается от даты начала.

Кто-нибудь делал это раньше и может пройти соответствующий код, чтобы получить любой из них на месте. Я чувствую, что это было бы очень ценно для сообщества WordPress.

3
NetConstructor.com

FullCalendarэто хорошая находка.

Похоже, вам нужно написать короткий код(который я покажу, как это сделать здесь):

А затем сгенерируйте код для вызова FullCalendar внутри шорткода .

После этого вам нужно написать код для генерации массива Javascript или сделать так, чтобы он ссылался на фид JSON:

Вот код, который вы можете поместить в отдельный файл .PHP, который вы можете назвать /fullcalendar-json-feed.php или как хотите. Код запрашивает пользовательские типы записей с именем event, которые будут запускаться в корневом каталоге вашего сайта и генерировать канал 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;

Вы можете сгенерировать опцию массива с кодом, очень похожим на приведенный выше. Тем не менее, это займет немного кода для вас, чтобы получить право. Может быть, вы просто хотите использовать решение, которое уже построено? Вот Q & A обсуждение календарей для WordPress:

5
MikeSchinkel