首页 文章

从WordPress自定义帖子类型创建iCal订阅链接

提问于
浏览
0

我使用WordPress自定义帖子类型创建了自己的活动日历,我需要将日历订阅到Google日历和Mac OSX日历应用程序 . Mac日历工作得很好,但谷歌有问题 .

我使用这个网站的脚本作为基础来创建我自己的脚本,生成我的iCal文件:http://www.noeltock.com/web-design/wordpress/how-to-ical-with-custom-post-types/

我已经浏览了这个网站,试图确保我拥有所有必要的字段:http://www.kanzaki.com/docs/ical/

我还将生成的iCal文件与WP插件Events Calendar Pro生成的文件进行了比较 .

当我单击Mac绝对链接(使用网络摄像头而不是http)时,它会启动应用程序并将文件中的事件加载到正常状态 .

当我点击Google链接(使用/ render?cid = feed)时,会打开一个标签,询问我是否要添加日历 . 我单击是,然后遇到错误,说我无法访问该日历 .

这是我生成的iCal文件的示例:

BEGIN:VCALENDAR
VERSION:2.0
PRODID:-//Site Name//NONSGML Events //EN
CALSCALE:GREGORIAN
METHOD:PUBLISH
X-WR-CALNAME:Site Name
X-ORIGINAL-URL:Site URL
X-WR-CALDESC:Site Description

BEGIN:VEVENT
DTSTART;VALUE=DATE-TIME:20140401T070000
DTEND;VALUE=DATE-TIME:20140401T230000
DTSTAMP:20140326T001707
CREATED:20140103T041301
LAST-MODIFIED:20140325T150531
SUMMARY:April Fool's Day
CLASS:PUBLIC
DESCRIPTION:Blah blah blah
END:VEVENT

END:VCALENDAR

有人可以告诉我我错过了什么吗?我已经和我斗争了两个星期,我的客户想要推出他的网站 . 先感谢您!

1 回答

  • 1

    你在设置 Headers 吗?

    header( 'Content-Type: text/Calendar' );
    header( 'Content-Disposition: inline; filename=calendar.ics' );
    

    对于Google,您可以构建查询字符串链接 . 这是我如何做它,它工作正常 .

    $google => array(
                    'label' => 'Google',
                    'icon'  => get_template_directory_uri() . '/images/common/ico_google.png',
                    'url'   => 'http://www.google.com/calendar/event?action=TEMPLATE&trp=false'
                        . '&text='    . $title
                        . '&details=' . $description
                        . '&dates='   . $date_start->format( $date_format )
                        . '/'         . $date_end->format( $date_format ),
                );
    
    <a href="<?php echo esc_url( $google['url'] ) ?>" class="<?php echo esc_attr( $google['url'] ) ?>" rel="external" target="_blank">
    

相关问题