Frage

Hier ist eine Frage, die ich über 3 Stunden damit verbracht habe, zu lösen, aber jeder Ansatz, den ich verfolge, arbeitet nicht für mich.

Ich versuche nur dieses OpenSource Ajax -Kalenderskript zu nutzen:

und lassen Sie die Einträge alle Beiträge innerhalb eines bestimmten Post -Typs anzeigen. Für jeden der Beiträge in diesem Event -Post -Typ habe ich einen benutzerdefinierten Metabox mit den folgenden benutzerdefinierten Feldern:

  • Ereigniskategorie
  • Ereignisstartdatum
  • Event -Startzeit
  • Event Enddatum
  • Event Endzeit

Auf der grundlegendsten Ebene benötige ich nur jeden Beitrag, um im entsprechenden Kalenderfeld basierend auf dem "Ereignisstartdatum" und "Ereignisstartzeit" zu sehen und zum entsprechenden Ereignis Post -Detail -Seite zu verlinken.

In einer idealen Situation wollte ich jede Ereigniskategorie mit eigener Farbe haben und haben jede Veranstaltung mehrere Tage, wenn das anwendbare Ereignis eine hat "event_end_date" Das ist anders als das Startdatum.

Hat jemand dies schon einmal gemacht und kann den entsprechenden Code überschreiten, um eines dieser Einrichtungen zu erreichen? Ich bin der Meinung, dass dies auch für die WordPress -Community sehr wertvoll wäre.

War es hilfreich?

Lösung

Fullcalendar ist ein schöner Fund.

Sieht für mich aus, als müsstest du schreiben ein Shortcode (Was ich hier zeige, wie man es macht):

Und dann Generieren Sie den Code, um den Fullcalendar innerhalb des Shortcode aufzurufen.

Danach müssen Sie Code schreiben, um ein JavaScript -Array zu generieren, oder verweisen auf einen JSON -Feed:

Hier ist Code, den Sie in einen Standalone einsetzen können .PHP Datei, die Sie anrufen können /fullcalendar-json-feed.php oder was auch immer du magst. Der Code fragt einen benutzerdefinierten Beitragstypen an, das aufgerufen wird event Dies wird im Stammverzeichnis Ihrer Website ausgeführt und generiert einen JSON -Feed. Es wird davon ausgegangen, dass Sie einige haben benutzerdefinierte Felder, die zur Bevölkerung des Arrays/der Feed erforderlich sind. (Ich werde den Rest der Abfrage- und benutzerdefinierten Felddetails Ihnen überlassen. Notiz Ich habe dies nicht mit Fullcalendar getestet, daher könnte es ein bisschen optimieren.):

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

Sie können die Array -Option mit sehr ähnlichem Code wie oben generieren. Trotzdem wird dies ein wenig kodieren, damit Sie richtig sind. Vielleicht möchten Sie nur eine Lösung verwenden, die bereits gebaut wurde? Hier ist eine Q & A -Diskussion über Kalender für WordPress:

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit wordpress.stackexchange
scroll top