it-swarm.dev

Načítání událostí typu vlastního příspěvku do plného kalendáře založeného na jQuery?

Zde je otázka, kterou jsem strávil více než 3 hodiny při pokusech o vyřešení, ale každý přístup, který jsem si nakonec nechal, nefunguje pro mě.

Všechno, co se pokouším udělat, je použít tento skript opensource ajax:

a mají záznamy zobrazující všechny příspěvky v rámci určitého typu příspěvku. Pro každý příspěvek v rámci tohoto typu příspěvku události mám vlastní metabox s následujícími vlastními poli:

  • kategorie událostí
  • datum zahájení události
  • čas zahájení události
  • datum ukončení události
  • čas ukončení události

Na nejzákladnější úrovni potřebuji, aby se každý příspěvek zobrazoval v rámci příslušného pole kalendáře na základě data začátku události a času zahájení události a odkazu na příslušnou stránku s podrobnostmi o události.

V ideální situaci jsem se snažil mít každou kategorii událostí s vlastní barvou a každá událost měla několik dní, pokud má příslušná událost hodnotu "event_end_date", která je odlišná od počátečního data.

Má to někdo udělal dříve a může za použitelný kód dostat jeden z těchto na místě. Mám pocit, že by to bylo velmi cenné i pro komunitu WordPress.

3

FullCalendarje pěkný nález.

Vypadá to, že budete muset napsata shortcode(což ukážu, jak to udělat):

A pak vygenerovat kód pro volání FullCalendar v rámci shortcode .

Poté budete muset napsat kód, abyste vytvořili pole Javascript, nebo jej označte jako zdroj JSON:

Zde je kód, který můžete umístit do samostatného souboru .PHP, kterému můžete zavolat /fullcalendar-json-feed.php nebo co chcete. Kód dotazuje vlastní typy příspěvků nazvané event, které budou spuštěny v kořenovém adresáři vašich webových stránek a budou generovat zdroj JSON a předpokládá, že máte některá vlastní pole potřebná k naplnění pole/zdroje . (Nechám vám zbytek dotazu a vlastní podrobnosti o poli.PoznámkaVlastně jsem to s testem FullCalendar netestoval, takže by to mohlo trvat trochu vylepšování) :

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

Můžete generovat možnost pole s velmi podobným kódem, který je uveden výše. Nicméně, to bude trvat trochu kódování pro vás dostat pravdu. Možná chcete použít řešení, které je již postaveno? Zde je diskuze o kalendářích pro WordPress:

5
MikeSchinkel