如何在WordPress RSS源中以编程方式删除函数?

时间:2009-08-23 22:07:03

标签: php wordpress rss

我正在尝试删除feed-rss2.php中显示的the_guid()函数。我试过remove_action('rss2_item', 'the_guid')remove_filter但没有任何反应。我也尝试了不同的钩子,如the_content_rss ......

该功能显示在feed-rss2.php的第43行,由<item></item>括起。

更新

使用echo current_filter(),我发现钩子是do_feed_rss2。但我仍然无法删除该功能。

3 个答案:

答案 0 :(得分:1)

您可以通过过滤器覆盖该功能的输出。

add_filter('get_the_guid','my_get_the_guid');
function my_get_the_guid($guid) {
    $my_guid = 'foo';
    return $my_guid;
}

使用它可以用你想要的任何东西覆盖GUID输出。您无法删除RSS输出中的节点,但可以控制其内容。如果要一起删除节点,可以创建自己的XML模板,将其保留在主题上,然后使用template_redirect操作强制加载模板而不是默认模板。

希望有所帮助!

答案 1 :(得分:1)

Feed Wrangler插件非常适合自定义Feed:

http://wordpress.org/extend/plugins/feed-wrangler/

基本上,安装插件,用slug表示一个feed(例如: no-guid ),然后将 feed-no-guid.php 文件添加到你的主题。您可以使用wp-includes/中的默认Feed文件作为基础,删除或添加您想要的任何项目。这样,您可以完全控制Feed,并在将来获得明确的升级路径。

答案 2 :(得分:0)

看起来像/wp-includes/feed-rss2.php中的第40行:

<guid isPermaLink="false"><?php the_guid(); ?></guid>

尝试删除它,看看会发生什么;它是文件中唯一对the_guid的引用