netconstructorcom
  • 0
Мастер

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

  • 0

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

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

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

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

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

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

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

Share
  1. 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:

    • 0
    • Майк, ты когда-нибудь спишь или просто бодрствуешь, ожидая, пока я опубликую следующий 🙂 Спасибо, чувак, я попробую, и я надеюсь, что смогу каким-то образом найти способ заставить все работать на основе твоего старта. точка.

      • 0
    • Майк, на другую тему; Основываясь на вашем очевидном опыте, я думаю, вы могли бы быстро решить еще один вопрос, который я опубликовал сегодня, и который я только что обновил новыми выводами. Не могли бы вы взглянуть: ссылка: wordpress.stackexchange.com/questions/1449/…

      • 0
    • @NetConstuctor.com : Примечание. Я не ответил на все ваши вопросы. Я готовлюсь сделать тебя зависимым от меня, так что в следующий раз тебе придется нанять меня! 😉 😉 😉 к/к. Что касается другого вопроса, он длиннее, чем я могу сейчас ответить. В ближайшие несколько дней я буду проводить на сайте меньше времени, так как работаю над клиентскими проектами…

      • 0

Оставить ответ

You must login to add an answer.