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

wordpress.stackexchange https://wordpress.stackexchange.com/questions/1447

Вопрос

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

Все, что я пытаюсь сделать, это использовать этот сценарий календаря AJAX OpenSource:

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

  • Категория событий
  • Дата начала события
  • Время начала события
  • Дата окончания события
  • Время окончания события

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

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

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

Это было полезно?

Решение

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;

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с wordpress.stackexchange
scroll top