在WordPress中使用二级域名发布RSS feed

为何要用二级域名来发布RSS feed?这个问题的答案有很多:有利于永久固定你的RSS feed地址;比WordPress默认的RSS feed更“好看”,更容易识别;可以在第三方RSS烧录服务之间无缝切换,等等。下面是具体实现步骤。

首先,你得有一个二级域名,这个应该在你的域名注册商那里操作。例如,在Godaddy注册域名的,就必须到Godaddy那里去添加域名,记得把二级域名的IP指向你所用主机空间的IP。这类教程网上很多,我也就不详细描述了。请注意,这个二级域名的起名也要讲究下,网上的教程一般都会以feed.xxx.com为例,不过我建议使用feeds.xxx.com,原因请接着往下看。

然后,回到你的主机空间商那里,从cPanel(或其他类型的程序)后台绑定你已经创建的二级域名。不同的空间商和不同的后台程序操作方式可能不太一样,我就用cPanel的情形给大家介绍一遍吧!

在cPanel后台找到添加二级域名的地方,英文一般是“Subdomain”,中文一般叫做“子域”。进去后,添加你已经在域名注册商那里创建好的二级域名。关键问题是,这个域名要指向你空间上的哪个地方呢?我这里的情形是,系统会自动指向网站主文件夹/public_html/目录下的同名目录,如public_html/feeds。前面提过,为啥这个二级域名开头部分最好用feeds而不是feed?因为WordPress默认的RSS feed链接格式本来就是xxx.com/feed/(在使用了固定链接的情形下)。现在你又要建一个新的feed文件夹指向你的二级域名,这样会有冲突的。怎么个冲突法?原来的默认feed会失效。所以呢,还是稍微改一下,加个小s吧,小s也很好嘛(此小s非对岸的那个小s,想歪的赶紧面壁去!)。不过这也不是绝对的,因为二级域名指向哪个目录由是你决定的,比如你也可以建其他的目录,总之不要在根目录下使用feed文件夹就行了。

系统会自动建立一个叫做feeds的文件夹(据说有的主机不会自动创建,没有的话自己手动建一个也行的……)。新建一个index.php文件,内容如下:

<?php header(“Content-Type: application/xml; charset=utf-8”) ;
@readfile(“http://www.xxx.com/feed/”);
?>

把上面的http://www.xxx.com/feed/换成你的原始feed地址就行了。然后,把这个index.php文件上传到前面提过的feeds文件夹内。

试一下用RSS阅读器订阅你的二级域名,你会发现跟订阅原始feed效果完全一样。

以上功能实现后,接下来就是一些比较细节的扫尾工作了,主要是个人使用习惯的问题。

问题1)如何让你的读者知道这个专用的二级域名呢?
你可以考虑新建一个页面,专门用来提醒读者(我就是这么做的,请围观本站RSS订阅说明页面)。或者写一篇置顶文章来说明也行,自己看着办吧。

问题2)如果读者通过侧边栏的默认RSS链接来订阅该咋办?

WordPress默认在侧边栏有个功能区,包含了文章和评论的RSS链接。由于默认的二级域名并不能直接在浏览器中打开访问,因此我们最好不要把侧边栏的RSS链接改为专用的二级域名链接(这样做没用)。这么说来,最好的办法就是直接把侧边栏的默认RSS链接给去掉好了,不给读者选择的机会(这个比较狠……)。

操作步骤:找到wp-includes文件夹下的default-widgets.php文件,搜索到

<li><a href=”<?php bloginfo(‘rss2_url’); ?>” title=”<?php echo esc_attr(__(‘Syndicate this site using RSS 2.0’)); ?>”><?php _e(‘Entries <abbr title=”Really Simple Syndication”>RSS</abbr>’); ?></a></li>
<li><a href=”<?php bloginfo(‘comments_rss2_url’); ?>” title=”<?php echo esc_attr(__(‘The latest comments to all posts in RSS’)); ?>”><?php _e(‘Comments <abbr title=”Really Simple Syndication”>RSS</abbr>’); ?></a></li>

把以上代码删除,或者注释掉。

问题3)如果用户通过浏览器地址栏的RSS链接来订阅又该咋办?
有一些浏览器(如Firefox)能在地址栏识别RSS feed,也就是俗称的博客头RSS。部分有经验的用户喜欢直接点击这个地方来添加RSS订阅。不过,这个链接也是默认为原始RSS feed的,那还是得修改一下这个链接的地址啊。为了省事,我们还是直接干掉它好了,方法是:

进入后台编辑主题的外观functions.php文件,添加如下代码:

// Remove automatic links to feeds
remove_action(‘wp_head’, ‘feed_links’, 2);
remove_action(‘wp_head’, ‘feed_links_extra’, 3);

(参考文章:Controlling and customising RSS feeds in WordPress

问题4)还有问题,你有完没完啊……

好吧,献上最后一个不算问题的问题。砖家说,提高你的网站RSS订阅量诀窍之一就是:在首页添加一个大大的RSS订阅图标。如果你把前面我介绍的全部都实现了,你会发觉:这么一来RSS订阅功能在网站上不是很明显啊。是的,的确如此,因为你已经把侧边栏、博客头的RSS链接都干掉了,极大地减少了RSS订阅功能的曝光机会。那么,还是来个补救措施吧:为首页添加一个大大的RSS订阅图标。

我的实现方法是:先挑一个养眼的RSS图标,上传到网站备用。在网站后台的“外观 – 小工具”模块,往“第一小工具区域”添加一个“文本”工具。这个“文本”工具的代码如下:

<a href=”http://www.xxx.com/subscribe/”><img title=”RSS” src=”http://www.xxx.com/xxx/rss.png” alt=”” width=”128″ height=”48″ /></a></p>

需要修改的地方:
1)由于我专门建了一个“RSS订阅”页面用来提醒读者我的专用RSS feed订阅地址,因此,我要把这个RSS订阅图标链接到这个“RSS订阅”页面,让用户一点击这个图标就转到目标页面。如果你选择写一篇置顶文章来说明你的Rss feed,也没问题,把上面的这个http://www.xxx.com/subscribe/替换成对应文章链接即可。
2)src=”http://www.xxx.com/xxx/rss.png”是具体的RSS图标路径,根据你的实际情形决定。至于图标的宽、高等都是可以自定义的,不明白的话,可以试着在某篇文章中插入一张图片,改变其格式,然后在HTML模式下研究其代码,参考之。

实际效果请围观本站首页侧边栏右上角的RSS订阅图标^_^

据说自己发布feed的话,会消耗一定的主机CPU资源,不过据过来人的数据统计,这点消耗实在是不值一提,各位放心吧。

“在WordPress中使用二级域名发布RSS feed”的7个回复

  1. 请问博主:
    我用的是feedsky的域名绑定服务,用二级域名指向feedsky。一直被feed文件夹困扰,有它的话,feedsky更新异常。删掉的话过段时间就出来,接着异常。
    本文中你的做法没有用托管服务吗?这样做貌似很稳定,不过这样好像不能统计吧

    1. 我不用RSS托管服务,就是不想依赖于第三方呀(如你所说的feedsky,普遍评价不是很稳定,但feedburner在国内又没法正常访问)。至于不能统计的问题,确实是如此,不过一来我不是很看重订阅数,二来,实际上在Google Reader中也是可以看订阅数的(这里假设GR是主流RSS订阅器,且我的订阅读者用GR比较多)。

发表评论

电子邮件地址不会被公开。 必填项已用*标注