Alcune installazioni di Wordpress presentano un problema nei feed RSS causato dalla presenza di spazi prima dell’inizio del codice del feed, dove si dichiara che è un file XML.
In questo caso provando ad accedere al feed avremo un errore del tipo
“XML Parsing Error: XML or text declaration not at start of entity”
o provando a validare il feed
“XML Parsing Error: XML declaration allowed only at the start of the document”
con l’indicazione della riga da dove parte effettivamente il codice dopo gli spazi bianchi.
In pratica ci sono degli spazi bianchi da eliminare prima di
<?xml version="1.0" encoding="UTF-8"?>
per avere una corretta dichiarazione XML.
Per risolvere il problema ho utilizzato la guida proposta dal sito W3it che consiglia semplicemente di inserire:
$out = ob_get_contents();
$out = str_replace(array("\n", "\r", "\t", " "), "", $input);
ob_end_clean();
subito dopo il codice
header('Content-Type: text/xml; charset=' . get_option('blog_charset'), true);
$more = 1;
all’interno dei file relativi ai feed RSS:
feed-rss2.php, feed-rss2-comments.php, feed-rss2-comments.php, feed-rss.php, feed-rdf.php, feed-atom.php, feed-atom-comments.php.
In pratica con poche righe di codice diciamo al sistema di cancellare tutti gli a capo con uno spazio vuoto.
Tags: Feed RSS, Risoluzione Problemi, Wordpress
