是否将自定义发布类型事件加载到基于jQuery的全日历中?

时间:2010-09-07 作者:NetConstructor.com

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

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

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

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

在理想的情况下,我希望每个活动类别都有自己的颜色,如果适用的活动有"event_end_date" 这与开始日期不同。

以前是否有人这样做过,并且可以通过适用的代码来实现这两种方法之一。我觉得这对WordPress社区也很有价值。

1 个回复
最合适的回答,由SO网友:MikeSchinkel 整理而成

FullCalendar 这是一个很好的发现。

看来你需要写信a shortcode (我在这里演示如何操作):

  • Adding an Archive of Posts to the Navigation Menu in WordPress 3.0generate the code to call the FullCalendar within the shortcode.

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

    以下代码可以放入独立的.PHP 可以调用的文件/fullcalendar-json-feed.php 或者你喜欢的任何东西。代码查询一个名为event 它将运行在您网站的根目录中,并将生成一个JSON提要,它假设您有一些custom fields needed to populate the array/feed. (我将把其余的查询和自定义字段详细信息留给您。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日历的讨论:

结束

相关推荐