it-swarm.cn

将自定义帖子类型事件加载到基于jQuery的FullCalendar中?

这是我花了3个多小时试图解决的问题,但我采取的每种方法都不适合我。

我试图做的就是利用这个开源的ajax日历脚本:

并让条目显示特定帖子类型中的所有帖子。对于此活动帖子类型中的每个帖子,我都有一个包含以下自定义字段的自定义元数据:

  • 事件类别
  • 活动开始日期
  • 活动开始时间
  • 活动结束日期
  • 活动结束时间

在最基本的级别,我只需要根据“活动开始日期”和“活动开始时间”在适用的日历框中显示每个帖子,并链接到适用的活动帖子详细信息页面。

在理想的情况下,我希望每个事件类别都有自己的颜色,如果适用的事件的"event_end_date"与开始日期不同,则每个事件都会跨越多天。

有没有人以前做过这个并且可以通过适用的代码来获得这些中的任何一个。我觉得这对WordPress社区也很有价值。

3
NetConstructor.com

FullCalendar是一个很好的发现。

在我看来你需要写一个短代码(我在这里展示了如何做):

然后 生成代码以在短代码 中调用FullCalendar。

之后,您需要编写代码来生成Javascript数组或让它引用JSON提要:

您可以将这些代码放入一个独立的.PHP文件中,您可以将其命名为/fullcalendar-json-feed.php或您喜欢的任何内容。代码查询名为event的自定义帖子类型,它将在您网站的根目录中运行并生成JSON提要,并假设您有一些 填充数组/提要所需的自定义字段 (我将把剩下的查询和自定义字段详细信息留给你.Note我实际上没有用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日历的问答讨论:

5
MikeSchinkel