web-dev-qa-db-fra.com

Chargement d'événements de type publication personnalisés dans FullCalendar basé sur jQuery?

Voici une question que j'ai passé plus de 3 heures à tenter de résoudre, mais chaque approche que je choisis finit par ne pas fonctionner pour moi.

Tout ce que je tente de faire est d’utiliser ce script de calendrier ajax opensource:

et que les entrées affichent toutes les publications d’un type de publication spécifique. Pour chacun des messages de cet événement, tapez une métabox personnalisée avec les champs personnalisés suivants:

  • catégorie d'événement
  • date de début de l'événement
  • heure de début de l'événement
  • date de fin de l'événement
  • heure de fin de l'événement

Au niveau le plus élémentaire, chaque message doit simplement apparaître dans la zone de calendrier applicable en fonction de la "date de début de l'événement" et du "heure de début de l'événement", ainsi que d'un lien vers la page de détails du message de l'événement applicable.

Dans une situation idéale, je souhaitais que chaque catégorie d’événement ait sa propre couleur et que chaque événement s’étende sur plusieurs jours si l’événement applicable a un "event_end_date" différent de la date de début.

Quelqu'un a-t-il déjà fait cela auparavant et peut-il contourner le code applicable pour obtenir l'un ou l'autre en place. Je pense que cela serait également très précieux pour la communauté WordPress.

3
NetConstructor.com

FullCalendar est une belle découverte.

Il me semble que vous devrez écrire un shortcode (que je montre comment faire ici):

Et ensuite générez le code pour appeler FullCalendar dans le shortcode .

Après cela, vous devrez écrire du code pour générer un tableau Javascript ou le renvoyer à un flux JSON:

Voici le code que vous pouvez mettre dans un fichier autonome .PHP que vous pourriez appeler /fullcalendar-json-feed.php ou ce que vous préférez. Le code interroge un type de message personnalisé appelé event, qui s'exécutera dans le répertoire racine de votre site Web et générera un flux JSON, en supposant que vous ayez quelques champs custom nécessaires pour remplir le tableau/feed . (Je vais vous laisser le reste de la requête et les détails du champ personnalisé. Note Je n'ai pas testé cela avec FullCalendar, cela pourrait prendre un peu de peaufinage)} :

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

Vous pouvez générer l'option de tableau avec un code très similaire à celui ci-dessus. Néanmoins, cela va prendre un peu de code pour que vous obteniez bien. Peut-être voulez-vous simplement utiliser une solution déjà construite? Voici une discussion sur les calendriers pour WordPress:

5
MikeSchinkel