Gosh! Yet another issue in my Wordpress!

This is the third time in less than two weeks that I had to troubleshoot my installation of Wordpress 2.5.

This time, however, the issue was not with Wordpress itself, but this particular theme that I am using - Illacrimo. The feed for this blog was throwing an error:

XML Parsing Error: xml declaration not at start of external entity
Location: http://www.sawantshah.com/feed/
Line Number 2, Column 1:<?xml version="1.0" encoding="UTF-8"?>
^

I learned about the error when I tried to burn my feed through FeedBurner, which informed me that the feed (RSS XML) was not well-formed:

The URL you entered does not appear to be a valid feed. We encountered the following problem: Error on line 2: The processing instruction target matching “[xX][mM][lL]” is not allowed.

It directed me Feed Validator to check the feed’s validity, and for sure it was not well formed:

line 1, column 1: Blank line before XML declaration

So what now? Google zindabad! On Wordpress Support I found this and this, but I didn’t find any concise and to the point answer there.

I found a concise and workable solution on W3C’s site - check it out.

Why this error occurs?

If an XML declaration (<?xml ... ?>) appears in your feed, it must be the first thing in the feed, before any whitespace.

Unfortunately, with WordPress it seems all too easy for a plugin, a theme, or for your configuration file to contain a blank line. Further compounding this problem, some — but not all — feed readers compensate for this common error, allowing the error to go undetected for quite a while.

What’s the solution?

The solution is to trim/delete any blank lines outside of the <? ... ?> in the PHP code of either the theme files (functions.php) or Wordpress files (wp-config.php, wp-rss2.php, wp-atom.php).

I had a blank line between two PHP code sections in the theme’s functions.php file. It was not evident at first, but thankfully, I finally got it to work! Now my feeds are working fine.

So go ahead and subscribe! :D