Загрузка пользовательских событий типа Post в FullCalendar на основе JQUERY?
-
16-10-2019 - |
Вопрос
Вот вопрос, который я потратил более 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: