>Algumas instalações pessoais de wordpress podem apresentar erro na saída de feed. Em sua maioria estes erros são causados por existência de espaços em branco antes da declaração de XML que é o responsável pelo resultado quebrado.
Demonstração saída com erro:
Erro no processamento de XML: declaração xml ou de texto fora do início da entidade Posição: http://www.teste.com.br/xxxxx/feed/ Número da linha 4, coluna 1:
Isto significa que se antes do caractere < houver caracteres indesejados, estes precisam ser eliminados (também os espaços em branco) para que a saída tenha uma declaração limpa de XML.
< ?xml version=”1.0″ encoding=”UTF-8″?>
A solução mais simples é a alterar o arquivo de saída wp-includes/feed-rss2.php.
Abra com um editor de texto e localize o seguinte código:
header(‘Content-Type: ‘ . feed_content_type(‘rss-http’) . ‘; charset=’ . get_option(‘blog_charset’), true);
$more = 1;
Abaixo da linha $more = 1; adicione o código:
$out = ob_get_contents();
$out = str_replace(array(“\n”, “\r”, “\t”, ” “), “”, $input);
ob_end_clean();
Mas o que é e para que servem as 3 linhas?
Começando pelo básico, ob significa Output Buffer, que nada mais é do que o Buffer de saída.
Buffer á uma região da memória onde os dados ficam armazenados temporariamente até que sejam despejados para a aplicação.
Você deve ter se deparado com algum erro de Headers already sent. Isso se dá porque já foi enviada alguma saída para o navegador.
O ob_get_contents(), irá retornar o conteúdo do buffer.
str_replace(array(“\n”, “\r”, “\t”, ” “), “”, $input); irá remover todos os espaços em branco existentes;
ob_end_clean() irá limpar, esvazia o buffer e encerrá-lo.
Deu uma olhada agora e, lá está seu feed prontinho 😉