代码之家  ›  专栏  ›  技术社区  ›  anno

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

  •  0
  • anno  · 技术社区  · 15 年前

    我正在尝试移除 the_guid() 出现在feed-rss2.php中的函数。我试过了 remove_action('rss2_item', 'the_guid') remove_filter 但什么也没发生。我也试过不同的钩子 the_content_rss

    功能出现在第43行 feed-rss2.php 被包围 <item></item> .

    更新

    echo current_filter() 我发现钩子是 do_feed_rss2 . 但我还是不能移除这个功能。

    3 回复  |  直到 15 年前
        1
  •  1
  •   Gipetto    15 年前

    您可以通过过滤器覆盖该函数的输出。

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

    使用它,您可以用您想要的任何东西覆盖guid输出。不能删除RSS输出中的节点,但可以控制其内容。如果要同时删除节点,可以创建自己的XML模板,并将其保留在主题上,然后使用模板重定向操作强制加载模板,而不是默认值。

    希望有帮助!

        2
  •  1
  •   Bob Sherron    15 年前

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

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

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

        3
  •  0
  •   markratledge    15 年前

    似乎第40行/wp includes/feed-rss2.php:

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

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