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:
Abaixo da linha $more = 1; adicione o código:
header('Content-Type: ' . feed_content_type('rss-http') . '; charset=' . get_option('blog_charset'), true);
$more = 1;
$out = ob_get_contents();Mas o que é e para que servem as 3 linhas?
$out = str_replace(array("\n", "\r", "\t", " "), "", $input);
ob_end_clean();
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 ;)







