“RSS错误:WP HTTP Error”
使用WordPress架站,本身有提供RSS自动输出功能,透过它可以让访客订阅网站最新文章,随时追踪网站最新动态。但有时我们可能装个外挂、调整一下网站布景主题或是做了小微调,结果造成网站RSS输出的错误,通常遇到这样的错误都不知从何解决?像香肠之前遇到了这样的状况,一度以为是外挂相冲,可是找了半天却无收获。
后来改查文章中是否有语法跟RSS相冲,造成输出错误,可是也没找到问题,后来逐渐转向WordPress布景主题,查看布景主题是否有出错,首先检查编码问题,接着查每一个档案内是否有错误的语法或是有含BOM,不过都无斩获。后来,无意间在functions.php这只档案内发现问题,结尾端因为有空行,所以造成RSS的输出出错。
其实RSS要找错误真的是不容易,一般来讲我会先透过Feed Validator对自己网站的RSS先进行基本的检测动作,看看分析后是哪边出问题,通常这边的分析是针对输出的内容,所以标记有错误的地方通常是内文区域,但如果你将内文全部改成存文字,检测后还是出问题,那不得不从网站的原始档案开始查起了。
我遇到的错误讯息是:
[code]This page contains the following errors:
error on line 2 at column 6: XML declaration allowed only at the start of the document
Below is a rendering of the page up to the first error.[/code]
一、检查wp-config.php
WordPress的RSS输出有时候会出错,原因可能出在于系统设定档案「wp-config.php」,编码的问题、档首有BOM标签问题都可能让RSS输出错误。所以就先来检查一下档案吧!更改编码以及BOM标签可透过NotePad++来修改,点选【编码】→【转换至UTF-8码格式(档首不含BOM)】。如果档案本身没中文,可直接点【编译成UTF-8(档首不含BOM)】。
二、检查布景主题的编码
如同第一部分,我们一样需检查布景主题的编码,一般国外载回来的布景,编码都是使用ANSII,如果遇到中文可能大家会另存成UTF-8,但却忘了BOM标签问题,所以我们一样需要透过以上的方式,将布景主题的编码全部统一改成UTF-8(不含BOM标签),再看RSS是否输出正确?
三、检查functions.php
众里寻它千百度,原来问题就在灯火阑珊处(乱引用)。后来发现问题是出在自订义函式那只PHP档案「functions.php」,当然首先建议先将档案调整成「UTF-8(不含BOM)」,接着将档案拉到最底下看,有看出什么端倪吗?没错!就是多了两行空白,结果造整个网站的RSS输出错误!
解决方法就是把最后的空行删除掉,让游标最多只能到「?>」后面而已。这样就可以顺将决RSS输出的问题解决啰!
四、问题解决啰!
当问题解决之后,我们可透过浏览器或RSS订阅工具再次查看RSS页面,看看是否正常输出。通常问题大概是这样子解决的,如果这样无法解决,可能要看看你是不是曾经动到系统档案了?把WordPress档案丢回去覆盖看看,并且切换到原始布景主题,慢慢查起。
