web-development-kb-pt.site

Carregando eventos do tipo Post personalizado em FullCalendar baseado em jQuery?

Aqui está uma pergunta que eu passei mais de 3 horas tentando resolver, mas cada abordagem que eu faço acaba não funcionando para mim.

Tudo o que estou tentando fazer é utilizar este script de calendário ajax opensource:

e as entradas exibem todas as postagens em um tipo de postagem específico. Para cada uma das postagens desse tipo de postagem de evento, tenho um metabox personalizado com os seguintes campos personalizados:

  • categoria de evento
  • data de início do evento
  • horário de início do evento
  • data de término do evento
  • hora de término do evento

No nível mais básico, só preciso que cada postagem seja exibida na caixa de calendário aplicável com base na "data de início do evento" e na "hora de início do evento" e vincule à página de detalhes da postagem do evento aplicável.

Em uma situação ideal, eu procurava ter cada categoria de evento com sua própria cor e fazer com que cada evento se estendesse por vários dias se o evento aplicável tivesse um "event_end_date" diferente da data de início.

Alguém já fez isso antes e pode passar o código aplicável para obter um desses no lugar. Eu sinto que isso seria altamente valioso para a comunidade WordPress também.

3
NetConstructor.com

FullCalendaré um bom achado.

Parece que você precisa escrevershortcode(que mostro como fazer aqui):

E então gera o código para chamar o FullCalendar dentro do shortcode .

Depois disso, você precisará escrever código para gerar um array Javascript ou fazer referência a um feed JSON:

Aqui está o código que você pode colocar em um arquivo .PHP autônomo que você poderia chamar de /fullcalendar-json-feed.php ou o que você quiser. O código consulta um tipo de post personalizado chamado event que será executado no diretório raiz do seu site e gerará um feed JSON e pressupõe que você tenha alguns campos personalizados necessários para preencher a matriz/feed . (Vou deixar o resto da consulta e os detalhes do campo personalizado para você.NoteEu não testei isso com o FullCalendar, então talvez precise de alguns ajustes) :

<?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;

Você pode gerar a opção de matriz com código muito semelhante ao acima. Ainda assim, isso vai levar um pouco de codificação para você acertar. Talvez você só queira usar uma solução já construída? Aqui está uma discussão sobre Q & A sobre calendários para o WordPress:

5
MikeSchinkel