WordPress有着比较强大的分类机制,包括文章分类、标签等,强大的分类机制可以用来实现门户网站的类似二级频道的功能,这样增加分类目录的订阅功能就比较重要了。
WordPress 有原生的 RSS 订阅功能,但是通常只是生成整站的文章订阅和文章的评论订阅。本文就来介绍如何生成分类目录的订阅链接。
1.简单的订阅分类目录的方法
首先,你必须要先打开一个分类目录。如果站点开启了固定链接,你看到的分类目录链接可能会是这种形式的:
http://localhost/category/markup/
这时候,我们只需要在后面的链接中加入 feed ,之后得到的就是订阅的地址,例如:
http://localhost/category/markup/feed/
如果站点没有开启,而是使用了默认的,你可能会看到类似下面这种链接:
http://localhost/?cat=54
如果获取它的订阅地址,就需要加上参数 feed 变成:
http://localhost/?feed=rss2&cat=54
于是,就有了一种实现方法,获取分类目录链接,然后进行修改再显示出来。当然,这种方法比较麻烦,而且官方有相关的函数。
2.为站点分类目录增加订阅功能
主要的思路是这样的:首先获取站点的分类目录资源,然后使用函数得到分类目录的订阅地址,然后输出或者进行其他操作。
这里主要用到 get_category 和 get_category_feed_link 这两个函数。从名字就可以看出,get_category 函数是根据分类目录的 ID 等获取一个分类目录对象;get_category_feed_link 函数就是获取这个分类目录对象的订阅地址。
具体操作如下:首先先找到主题目录下的 category.php 文件,当点击分类目录的时候,WordPress 会调用这个文件作为分类目录的模板。一般成熟的主题都会有这个文件,如果没有的话,就将 index.php 复制一遍然后改成 category.php 这个文件名。然后打开这个文件,在适当的位置添加下面这段代码:
<?php
$category = get_category( get_query_var('cat') );
if ( ! empty( $category ) )
echo '<p><a href="' . get_category_feed_link( $category->cat_ID ) . '" title="订阅当前分类" rel="nofollow">订阅</a></p>';
?>
刷新之后,在对应位置会出现一个名为“订阅”的超链接,链接指向的就是当前分类目录的订阅地址。这段代码使用的是 get_query_var('cat') 这段代码获取的当前访问的分类目录,所以必须放在 category.php 文件中。
当然还可以使用其他的函数获取 category 的资源,来得到对应的订阅链接,或者使用 link 标签添加到文档的头部,方便浏览器、阅读器获取订阅地址等等。