包含分类中任何术语的帖子的RSS提要

时间:2010-11-06 作者:Dave Morris

我想这个问题的答案将与我昨天提出的这个问题有关:

Custom Taxonomy WP_Query for All Terms in a Taxonomy?

我想输出一个RSS提要,其中包含所有具有特定分类法中的任何条目的帖子。我可以这样做:

http://blog.example.com/feed/?taxonomy=taxonomy-name&term=test-term

返回分配给特定术语的所有帖子,但我希望有一个提要,显示该分类法中所有术语的所有帖子。

谢谢Dave

2 个回复
SO网友:hakre

解决方案

WordPress 3.1 Taxonomy Feeds Plugin (Must Use)

将必须使用的插件放在您的网站上,并请求:

http://blog.example.com/feed/?taxonomy=taxonomy-name

正如你所要求的。

详细信息

Wordpress提供了使用多种配置请求提要的功能。Finding Your Feed URL (Wordpress Codex) 显示可能的情况。在标准提要(帖子)旁边,您可以有以下内容:

评论-http://example.com/?feed=commentsrss2http://example.com/?cat=42&feed=rss2http://example.com/?tag=tagname&feed=rss2http://example.com/author/authorname/feed/

  • 搜索-http://example.com/?s=searchterm&feed=rss2
  • (注意:RSS2是Wordpress的默认提要格式)

    如您所见,没有提供关于查询分类法帖子的提要的示例URL。

    一般来说,Feed就像任何其他博客帖子或评论列表一样:一个WP\\u查询,然后在Feed模板中运行循环。

    WP\\u Query支持taxonomy 默认情况下为request参数。该请求参数为sort of documented in codex, 该部分有两个问题:1。)它是分类法(不是税),second 3.1还没有发布,所以它还没有被弃用。我链接该文档的目的是显示它的值与分类法slug进行了比较。

    因此,要想知道WordPress是否可以轻松地完成您想要做的事情,您需要知道提要在请求某个类别时是否已经支持分类法。我已经这样做了,事实并非如此。使用了一个额外的请求查询变量:category_name.

    因此,目前唯一有趣的部分是,我们可以额外使用taxonomy 请求参数,当wordpress查找feeds数据库数据时,它处于某种旧式类别查询模式,而不是分类查询模式。这有点遗憾,因为您正在寻找分类法。

    暂时深呼吸,因为你需要。Wordpress的问题是,您现在开始接触到软件最复杂的内部结构。包中有一些非常复杂的函数,要理解这些函数就像调试代码:您需要一步一步地完成。

    在这样做的同时,您可能很幸运地找到了一个过滤器或挂钩,您可以利用它在运行中操纵值和回调,使事情按您的意愿进行。但问题是,修补得越多,损坏东西的风险就越高。

    因此,艺术就是找到一个地方来进行改变,这是一个侵入性较小的位置。

    添加对分类法的支持

    如上所述,需要在WP\\U查询中直接添加对分类法的支持。这可以通过挂接该函数并在执行此操作时更改值来实现。

    但是可以查询分类法吗?关于这一点,我找不到太多3.1之前的信息。看起来,即使WordPress 3.0支持自定义分类法,也无法通过请求参数查询特定分类法中的帖子。

    即使在我的3.1测试床中,我也无法将请求参数映射到分类查询。因此,即使使用3.1,这也可能不容易做到。

    到目前为止,我能看到的最好的解决方案是挂接到WP\\u查询并使用WordPress 3.1 based custom taxonomy query, 以下是一些模型代码:

    $myquery[\'tax_query\'] = array(
        array(
            \'taxonomy\' => \'category\',
        ),
    );
    query_posts($myquery);
    
    我觉得这可能行不通,因为我们只查询分类法。让我们详细检查一下。

    WP 3.1自定义分类查询仅用于分类pre_get_posts 并注入了上面显示的WordPress 3.1自定义分类查询。作为分类法,我使用了一种默认分类法:category (你可以find all default taxonomies here). 它抛出了很多PHP警告,这表明该功能在某种程度上是脆弱的。因此,请注意,不要指望事情会开箱即用。

    不管怎样,我测试了这一点,为了快速完成一个长话短说的结尾,我找到了一个解决方案,只需获取所有术语,然后将它们添加到查询中。这是我迄今为止使用的mu插件:(贴在上面),为我做这项工作。

    SO网友:alexndm

    或者只使用URL:feed://www.myurl.org/feed?post_type=news&;category\\u name=MyCategory

    结束