自定义RSS模板的奇怪问题

时间:2011-04-18 作者:Chris Allen Lane

我正试图为我的公司管理的网站创建一个自定义RSS提要模板,我遇到了一个非常令人困惑的bug,我想输入一些信息。

首先,作为背景上下文,在大量google之后,这是我选择的创建RSS模板的方法。(如果有更好的方法,我洗耳恭听):

复制/wp包括/feed-rss2。将该文件指定为页面模板,并根据需要从Wordpress后端进行修改,创建一个使用上述模板的新页面。从那里,您可以获得一个为RSS格式化的XML提要。这个过程似乎很好,即使有点麻烦。

现在,我有个问题。输出的XML如下所示:

<?xml version="1.0" encoding="UTF-8"?> 
<rss version="2.0"
    xmlns:content="http://purl.org/rss/1.0/modules/content/"
    xmlns:wfw="http://wellformedweb.org/CommentAPI/"
    xmlns:dc="http://purl.org/dc/elements/1.1/"
    xmlns:atom="http://www.w3.org/2005/Atom"
    xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
    xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
    > 

<channel> 
    <title>New Grocery Coupons & Online Coupons Added Daily</title> 
    <atom:link href="http://couponkim.dev/weekly-deals-rss/" rel="self" type="application/rss+xml" /> 
    <link>http://couponkim.dev</link> 
    <description>Coupon Kim has online coupons, printable coupons, and coupon code section for Moms like me trying to save money!</description> 
    <lastBuildDate>Mon, 18 Apr 2011 14:51:44 +0000</lastBuildDate> 
    <language>en</language> 
    <sy:updatePeriod>hourly</sy:updatePeriod> 
    <sy:updateFrequency>1</sy:updateFrequency> 
    <generator>http://wordpress.org/?v=3.1</generator> 
        <item> 
        <title>coupon-code</title> 
        <link>http://couponkim.dev/soap-com-coupons/coupon-code-159/</link> 
        <comments>http://couponkim.dev/soap-com-coupons/coupon-code-159/#comments</comments> 
        <pubDate>Mon, 18 Apr 2011 13:46:18 +0000</pubDate> 


...
(为了相关性,我截断了输出。)

当我尝试在Google Chrome中查看上述内容时,我收到以下错误消息:

error on line 12 at column 30: xmlParseEntityRef: no name
我在这里的假设是,符号造成了问题,尽管老实说,这仍然是一个猜测。

好啊这就是它开始变得奇怪的地方。我进入PHP模板,并将该标题嵌入到CDATA标记中。奇怪的是,刷新页面时,我没有看到输出中反映的更改。

尝试一些更简单的方法,我只是在title标记内删除了模板中的所有PHP,并将其替换为静态文本,如“这是一个测试”当我刷新页面时,我仍然没有看到输出有任何变化。

在那一点上,我怀疑某处的某个缓存一定对我不利。我禁用了W3 Total Cache插件,清除了浏览器的缓存(我使用的是Chrome),然后重新启动了Apache。我重新加载了页面,但没有看到任何变化。

现在,作为一个实验,我改变了<title></title> 要读取的标记<test></test> 并重新加载。这次,我确实看到了变化。

所以在这一点上,我想,好吧,酷,我终于突破了缓存。我将线路改回:<title>This is a Test</title>, 但锯输出<title>New Grocery Coupons & Online Coupons Added Daily</title>.

所以这就是我所在的地方。我完全不知道现在的问题是什么。

不过,还有一件奇怪的事要知道。当我改变<title> 标记到<test>, 看到第12行所做的更改,下一个标题标签(在频道->项目->第22行标题)更改为<title>New Grocery Coupons & Online Coupons Added Daily</title> - 即,12号线的故障输出!

我最好的猜测是,有一些我不知道的Wordpress过滤器正在这个输出上运行,但我现在真的很困惑。如果你们能对这个问题有所了解,我们将不胜感激!

提前谢谢。

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

首先,作为背景上下文,在大量google之后,这是我选择的创建RSS模板的方法。(如果有更好的方法,我洗耳恭听):

这是今天第二次出现。:)您应该使用add_feed() ()source ) 而是用page来模拟这些东西。

至于你们所描述的问题,我不确定。如果涉及缓存,我会尝试在单独的本地测试安装上测试。

结束