the_post() in RSS feed

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

我这里有一个困扰我的问题。我正在尝试使用add_feed(). feed似乎已经成功创建,但我在编写feed模板时遇到了一些bug。

出于某种原因,在我的代码中,the_post() 似乎在循环中没有返回任何内容。(我已经通过使用print_r). 我只是无法获得我所期望的与帖子相关的典型信息。

更奇怪的是:get_defined_vars() 在模板内也不输出任何内容。我编写了一个测试脚本,托管在同一台物理机器上的另一台vhost上,以验证PHP配置是否正确,而且似乎是正确的。

陌生人:尽管如此,我的<item>这不是一片空白<有些wordpress功能似乎可以工作,但不是全部:/

作为参考,这里是我正在处理的整个模板文件。它非常小,但基于wp-includes/feed-rss2.php 文件:

View it on pastebin. (抱歉,试图将其放在此处,但格式化程序对此感到非常困惑。)

非常感谢您的帮助。我被难住了!

2 个回复
SO网友:Chris Allen Lane

好啊所以我想这是我自己想出来的。为了那些可能落入相同陷阱的人,我将在这里记录它。

我一直在使用一个模板文件来构建我的提要。在我的functions.php 文件,这是代码的相关部分之前的样子:

add_feed(\'weekly_deals\', \'weekly_deals_create_feed\');
function weekly_deals_create_feed(){
    # for the sake of cleanliness, simply include a template file here
    include get_template_directory() . "/weekly-deals-rss.php";
}
通过随机搜索,我发现可以这样做:

add_feed(\'weekly_deals\', \'weekly_deals_create_feed\');
function weekly_deals_create_feed(){
    # for the sake of cleanliness, simply include a template file here
    load_template(get_template_directory() . "/weekly-deals-rss.php");
}
后者有效,而前者根本不起作用。显然,Wordpress在使用时会以某种方式破坏(或不可用)所有环境数据include 对于我上面所做的模板。

生活和学习:/

SO网友:Rarst

在我的代码中,the_post() 似乎在循环中没有返回任何内容

它不应该归还任何东西。它只是用当前post的信息设置全局变量并迭代循环。检查全局$post 改为当前帖子的变量。

更奇怪的是:get_defined_vars() 在模板内也不输出任何内容。

该函数从当前范围输出变量。由于模板加载在某些与提要相关的函数中,因此不会输出全局变量,因为它们超出了该函数的范围。

结束

相关推荐

Empty RSS Feeds

当我尝试访问标签、类别和作者的提要时,我得到的是空列表。如果我尝试打开该站点的提要,我会得到“找不到页面”Empty Feed: http://thinkzarahatke.com/category/advertisement/video/feedhttp://thinkzarahatke.com/author/amty/feedPage not Found :http://thinkzarahatke.com/feed我曾尝试修复rss提要插件。但它也解决不了我的问题。请帮忙。