MovableType:是否可以为“今日”条目提供RSS订阅源?

时间:2010-03-09 16:23:52

标签: movabletype

背景
我们的电子邮件供应商支持动态内容的RSS订阅源,我们成功用于“每日标题”类型的电子邮件。这对于我们每天都没有人员编制的许多不同电子邮件的自动化有很大帮助。我们的一位工作人员要求他的每日电子邮件(最近有来自他的Movable Type博客的头条新闻)只有当天发布的条目的头条新闻。

我的问题
由于我们在他的博客中使用Movable Type,是否有办法生成仅包含当天发布的项目的RSS订阅源?

2 个答案:

答案 0 :(得分:1)

使用mt上的“days”参数可以简化您的解决方案:条目:

<?xml version="1.0" encoding="<$MTPublishCharset$>"?>
<feed xmlns="http://www.w3.org/2005/Atom">
<title><$MTBlogName remove_html="1" encode_xml="1"$></title>
<link rel="alternate" type="text/html" href="<$MTBlogURL encode_xml="1"$>" />
<link rel="self" type="application/atom+xml" href="<$MTBlogURL$>atom.xml" />
<id>tag:<$MTBlogHost exclude_port="1" encode_xml="1"$>,<$MTDate format="%Y"$>:<$MTBlogRelativeURL encode_xml="1"$>/<$MTBlogID$></id>
<link rel="service.post" type="application/atom+xml" href="<$MTCGIPath$><$MTAtomScript$>/weblog/blog_id=<$MTBlogID$>" title="<$MTBlogName encode_html="1"$>" />
<updated><MTEntries lastn="1"><$MTEntryModifiedDate utc="1" format="%Y-%m-%dT%H:%M:%SZ"$></MTEntries></updated>
<MTIfNonEmpty tag="MTBlogDescription"><subtitle><$MTBlogDescription remove_html="1" encode_xml="1"$></subtitle></MTIfNonEmpty>
<generator uri="http://www.sixapart.com/movabletype/">Movable Type <$MTVersion$></generator>

<MTEntries days="1">

<entry>
<title><$MTEntryTitle remove_html="1" encode_xml="1"$></title>  
<link rel="alternate" type="text/html" href="<$MTEntryPermalink encode_xml="1"$>" />
<link rel="service.edit" type="application/atom+xml" href="<$MTCGIPath$><$MTAtomScript$>/weblog/blog_id=<$MTBlogID$>/entry_id=<$MTEntryID$>" title="<$MTEntryTitle encode_html="1"$>" />
<id><$MTEntryAtomID$></id>

<published><$MTEntryDate utc="1" format="%Y-%m-%dT%H:%M:%SZ"$></published>
<updated><$MTEntryModifiedDate utc="1" format="%Y-%m-%dT%H:%M:%SZ"$></updated>

<summary><$MTEntryExcerpt remove_html="1" encode_xml="1"$></summary>
<author>
    <name><$MTEntryAuthorDisplayName encode_xml="1"$></name>
    <MTIfNonEmpty tag="MTEntryAuthorURL"><uri><$MTEntryAuthorURL encode_xml="1"$></uri></MTIfNonEmpty>
</author>
<MTEntryCategories>
    <category term="<$MTCategoryLabel encode_xml="1"$>" />
</MTEntryCategories>
<content type="html" xml:lang="<$MTBlogLanguage ietf="1"$>" xml:base="<$MTBlogURL encode_xml="1"$>">
<$MTEntryBody encode_xml="1"$>
<$MTEntryMore encode_xml="1"$>
</content>
</entry>

</MTEntries>

无需自行检查日期,这也会删除您的版本创建的空“条目”标记。

答案 1 :(得分:0)

好的,所以我自己弄清楚了。 首先,我必须创建一个新的feed,我将其命名为“daily.xml”,并将atom.xml中的默认代码复制到其中。然后我使用 setvarblock 来定义当前日期和发布日期的变量。完成此操作后,我使用 if 来比较2个变量,并显示匹配的变量。

<强>码

<?xml version="1.0" encoding="<$MTPublishCharset$>"?>
    <feed xmlns="http://www.w3.org/2005/Atom">
    <title><$MTBlogName remove_html="1" encode_xml="1"$></title>
    <link rel="alternate" type="text/html" href="<$MTBlogURL encode_xml="1"$>" />
    <link rel="self" type="application/atom+xml" href="<$MTBlogURL$>atom.xml" />
    <id>tag:<$MTBlogHost exclude_port="1" encode_xml="1"$>,<$MTDate format="%Y"$>:<$MTBlogRelativeURL encode_xml="1"$>/<$MTBlogID$></id>
    <link rel="service.post" type="application/atom+xml" href="<$MTCGIPath$><$MTAtomScript$>/weblog/blog_id=<$MTBlogID$>" title="<$MTBlogName encode_html="1"$>" />
    <updated><MTEntries lastn="1"><$MTEntryModifiedDate utc="1" format="%Y-%m-%dT%H:%M:%SZ"$></MTEntries></updated>
    <MTIfNonEmpty tag="MTBlogDescription"><subtitle><$MTBlogDescription remove_html="1" encode_xml="1"$></subtitle></MTIfNonEmpty>
    <generator uri="http://www.sixapart.com/movabletype/">Movable Type <$MTVersion$></generator>

    <MTEntries lastn="15">


    <entry>

    <!-- this sets the current date to a variable named "TodaysDate" -->
    <mt:setvarblock name="TodayDate"><$mt:Date format="%Y%m%d"></mt:setvarblock>

    <!-- this sets the entry publish date to a variable named "PublishedDate" -->       
    <mt:setvarblock name="PublishedDate"><$mt:EntryDate format="%Y%m%d"></mt:setvarblock>

    <!-- starts an IF statement comparing equality of "PublishedDate" and "TodayDate". note: for some reason the second variable needs to have an '$' added to the front --> 
    <mt:if name="PublishedDate" eq="$TodayDate">

    <!-- the rest of this (except the end of the IF statement) is copied from default template -->
    <title><$MTEntryTitle remove_html="1" encode_xml="1"$></title>  
    <link rel="alternate" type="text/html" href="<$MTEntryPermalink encode_xml="1"$>" />
    <link rel="service.edit" type="application/atom+xml" href="<$MTCGIPath$><$MTAtomScript$>/weblog/blog_id=<$MTBlogID$>/entry_id=<$MTEntryID$>" title="<$MTEntryTitle encode_html="1"$>" />
    <id><$MTEntryAtomID$></id>

    <published><$MTEntryDate utc="1" format="%Y-%m-%dT%H:%M:%SZ"$></published>
    <updated><$MTEntryModifiedDate utc="1" format="%Y-%m-%dT%H:%M:%SZ"$></updated>

    <summary><$MTEntryExcerpt remove_html="1" encode_xml="1"$></summary>
    <author>
        <name><$MTEntryAuthorDisplayName encode_xml="1"$></name>
        <MTIfNonEmpty tag="MTEntryAuthorURL"><uri><$MTEntryAuthorURL encode_xml="1"$></uri></MTIfNonEmpty>
    </author>
    <MTEntryCategories>
        <category term="<$MTCategoryLabel encode_xml="1"$>" />
    </MTEntryCategories>
    <content type="html" xml:lang="<$MTBlogLanguage ietf="1"$>" xml:base="<$MTBlogURL encode_xml="1"$>">
    <$MTEntryBody encode_xml="1"$>
    <$MTEntryMore encode_xml="1"$>
    </content>

    <!-- end of our IF statement -->
    </mt:if>
    </entry>


    </MTEntries>

</feed>