我使用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
有人可以告诉我我错过了什么吗?我已经和我一起战斗了两个星期,我的客户想要启动他的网站。提前谢谢!
答案 0 :(得分:1)
你在设置标题吗?
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">