如何将WordPress实现RSS feed静态化

作者 : 来源互联网 本文共1966个字,预计阅读时间需要5分钟 发布时间: 2017-10-6 共380人阅读

提示:如果你的feed订阅地址不是http://域名/feed这样的格式,以下内容就不要看了。

WordPress的feed地址一般如: http://www.tmavip.com/feed。开启feed功能后可以方便RSS阅读器进行订阅,让读者及时收到博客的更新信息,但是开放feed后有个坏处就是,RSS订阅器会定时或不定时的地访问你的feed订阅地址,以便查看你的feed是否更新,除了RSS阅读器会经常访问你的feed,各路文章采集器和蜘蛛也会经常来光顾你的feed,而且你还不能限制他们的访问频率。

因为WordPress提供的feed是动态生成的,虽然有cache功能,但毕竟要运行php代码,feed被频繁访问势必会消耗一定的服务器资源。那我们今天就来讲讲如何实现feed静态化,直接生成一个index.xml文件,放到WordPress根目录下的feed目录,以后访问 http://网站首页/feed 即可直接读取静态的index.xml,无需WordPress动态生成。

1、禁用默认的feed

众所周知,feed的地址一旦确定下来,如果随便更改,之前已经订阅过的读者可能不会再收到文章更新的通知,势必会流失很多老读者,所以要实现feed的静态化,前提应该是不更改原先的feed订阅地址,但是原先的feed是与WordPress的rewrite规则绑定的,直接在feed目录下放置xml文件,势必会引起冲突。

我的上篇文章已经讲了如何彻底移除并关闭WordPress的feed功能,你以为我是故意教你关闭feed功能,闭关锁国,封闭博客与外界的交流吗?这么想你就错了,上篇文章就是为了今天这篇文章准备的。

所以,第一步就是先按照上篇文章:彻底移除并关闭WordPress的Rss Feed方法,禁用WordPress默认的feed。这一步操作完成后,效果就是打开 http://网站首页/feed,会显示404页面不存在,

当然,如果直接在网站根目录下创建目录,然后放入index.xml也是可以的。

2、生成静态feed

如何生成静态feed呢?这里直接用WordPress自带的wp-includes/feed-rss2.php,我对其做