Como Criar Feeds RSS Personalizados no WordPress

O WordPress vem com um feed RSS padrão que compartilha automaticamente o conteúdo do seu site, facilitando para os assinantes se manterem atualizados.

No entanto, se você deseja compartilhar apenas tipos específicos de conteúdo, como posts de blog, atualizações de produtos ou anúncios de eventos, você pode configurar feeds RSS personalizados. Dessa forma, você pode oferecer ao seu público conteúdo sob medida e relevante para seus interesses.

Isso melhora o engajamento, pois os assinantes recebem atualizações mais significativas para eles. Além disso, isso lhe dá mais controle sobre como e onde seu conteúdo é compartilhado.

Neste artigo, mostraremos como criar facilmente um feed RSS personalizado no WordPress.

Criar feed RSS personalizado no WordPress

Por que Criar um Feed RSS Personalizado no WordPress?

O WordPress vem com um feed RSS integrado, e você pode facilmente adicionar conteúdo personalizado ou miniaturas a ele.

No entanto, se você tem um tipo específico de conteúdo ou um tipo de post personalizado em seu site WordPress, talvez queira criar um feed RSS personalizado para ele.

Por exemplo, se você entrega conteúdo exclusivo para seus assinantes de autores específicos, você pode criar um feed RSS personalizado para manter seus assinantes informados sobre o conteúdo. Isso pode melhorar seus rankings nos motores de busca.

Além disso, feeds personalizados permitem mais liberdade, permitindo que você adicione o nome do autor, datas de publicação ou qualquer outra informação relevante, fornecendo mais detalhes aos seus usuários.

Dito isso, vamos ver como criar facilmente feeds RSS personalizados no WordPress, passo a passo.

Observação: Você deve fazer um backup completo do seu site WordPress antes de fazer quaisquer alterações importantes em um site ativo.

Como Criar um Feed RSS Personalizado no WordPress

Você pode facilmente criar um feed RSS personalizado no WordPress adicionando código personalizado ao arquivo functions.php do seu tema.

Este feed exibirá o título, link, data de publicação, autor e trechos das postagens do seu site WordPress.

No entanto, lembre-se de que o menor erro ao digitar este código pode quebrar seu site e torná-lo inacessível.

É por isso que recomendamos o uso do WPCode. É o melhor plugin de snippets de código para WordPress do mercado, tornando seguro e fácil adicionar código personalizado ao seu site.

Primeiro, você precisa instalar e ativar o plugin WPCode. Para instruções detalhadas, consulte nosso guia para iniciantes sobre como instalar um plugin do WordPress.

Observação: Você pode usar o plugin gratuito WPCode para este tutorial. No entanto, a atualização para o plano pago desbloqueará mais recursos, como o modo de teste, biblioteca na nuvem, lógica condicional e muito mais.

Ao ativar, visite a página Code Snippets » + Add Snippet na barra lateral de administração do WordPress. Aqui, clique no botão ‘Use Snippet’ em ‘Add Your Custom Code (New Snippet)’.

Adicionar novo snippet

Isso o levará à página ‘Criar Snippet Personalizado’, onde você pode começar digitando um nome para o snippet de código.

Em seguida, escolha a opção ‘PHP Snippet’ no menu suspenso Code Type à direita.

Escolha a opção Trecho PHP para criar um feed RSS personalizado

Em seguida, adicione o seguinte código personalizado na caixa ‘Pré-visualização do Código’:

add_action('init', 'customRSS');
function customRSS(){
        add_feed('Feed', 'customRSSFunc');
}function customRSSFunc(){
        get_template_part('rss', 'feedname');
/**
 * Template Name: Custom RSS Template - Feedname
 */
$postCount = 5; // The number of posts to show in the feed
$posts = query_posts('showposts=' . $postCount);
header('Content-Type: '.feed_content_type('rss-http').'; charset='.get_option('blog_charset'), true);
echo '<?xml version="1.0" encoding="'.get_option('blog_charset').'"?'.'>';
?>
<rss version="2.0"
        xmlns:content="http://purl.org/rss/1.0/modules/content/"
        xmlns:wfw="http://wellformedweb.org/CommentAPI/"
        xmlns:dc="http://purl.org/dc/elements/1.1/"
        xmlns:atom="http://www.w3.org/2005/Atom"
        xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
        xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
        <?php do_action('rss2_ns'); ?>>
<channel>
        <title><?php bloginfo_rss('name'); ?> - Feed</title>
        <atom:link href="<?php self_link(); ?>" rel="self" type="application/rss+xml" />
        <link><?php bloginfo_rss('url') ?></link>
        <description><?php bloginfo_rss('description') ?></description>
        <lastBuildDate><?php echo mysql2date('D, d M Y H:i:s +0000', get_lastpostmodified('GMT'), false); ?></lastBuildDate>
        <language><?php echo get_option('rss_language'); ?></language>
        <sy:updatePeriod><?php echo apply_filters( 'rss_update_period', 'hourly' ); ?></sy:updatePeriod>
        <sy:updateFrequency><?php echo apply_filters( 'rss_update_frequency', '1' ); ?></sy:updateFrequency>
        <?php do_action('rss2_head'); ?>
        <?php while(have_posts()) : the_post(); ?>
                <item>
                        <title><?php the_title_rss(); ?></title>
                        <link><?php the_permalink_rss(); ?></link>
                        <pubDate><?php echo mysql2date('D, d M Y H:i:s +0000', get_post_time('Y-m-d H:i:s', true), false); ?></pubDate>
                        <dc:creator><?php the_author(); ?></dc:creator>
                        <guid isPermaLink="false"><?php the_guid(); ?></guid>
                        <description><![CDATA[<?php the_excerpt_rss() ?>]]></description>
                        <content:encoded><![CDATA[<?php the_excerpt_rss() ?>]]></content:encoded>
                        <?php rss_enclosure(); ?>
                        <?php do_action('rss2_item'); ?>
                </item>
        <?php endwhile; ?>
</channel>
</rss>

Agora você pode alterar o nome do seu feed RSS personalizado para o que quiser, substituindo o texto Feed após a linha add_feed no código.

Assim que você criar este feed, poderá visualizá-lo acessando o URL do feed RSS. Ele ficará assim: seusite.com/feed/nomedofeede.

Digite o nome do feed personalizado no código

Em seguida, role para baixo até a seção de inserção e escolha o modo ‘Auto Insert’.

O feed RSS personalizado será criado automaticamente após a ativação do código.

Escolha um método de inserção

Finalmente, role de volta para o topo e mude o interruptor ‘Inativo’ para ‘Ativo’.

Depois disso, clique no botão ‘Salvar Snippet’ para armazenar suas configurações.

Salve o snippet personalizado do feed RSS personalizado

Depois de fazer isso, visite a página Settings » Permalinks no painel do WordPress.

Aqui, basta clicar no botão ‘Salvar Alterações’ para limpar as regras de reescrita e gerar novos permalinks para o seu site.

Verificar Permalinks

Agora você poderá ver seu feed RSS personalizado visitando o URL seusite.com/feed/nomedofeede.

Aqui está um exemplo do feed RSS personalizado em nosso site de demonstração do WordPress:

Visualização do feed RSS personalizado

Bônus: Solução de Problemas de Feeds RSS Personalizados

Aqui está uma lista de alguns erros que podem ocorrer ao tentar criar um feed RSS personalizado e como você pode resolvê-los.

Estou recebendo um erro 404 ao tentar visualizar meu feed!

Se você receber o erro 404 ao tentar visualizar seu feed personalizado, verifique se está usando o nome do feed correto em seu URL.

Ele tem que ser o que você forneceu na função add_feed. Se você tiver o nome do feed correto, suas regras de reescrita podem não ter sido limpas corretamente. Você pode fazer isso facilmente salvando novamente seus permalinks.

Se você salvou seus permalinks novamente e o problema ainda persistir, você pode forçar uma limpeza de reescrita adicionando este código em seu snippet WPCode ao lado da função add_feed:

global $wp_rewrite;
$wp_rewrite->flush_rules();

Meu feed não está validando!

O W3C oferece um serviço de validação de feed que permite validar o feed resultante e fornece detalhes específicos sobre onde seu feed não está validando.

Você pode então editar facilmente o trecho de código para resolver esses problemas.

Estou recebendo um erro de validação de <language />!

Isso é comum quando o idioma do RSS não foi configurado em sua instalação do WordPress.

Para fazer isso, você pode adicionar o seguinte código ao WPCode para atualizar a opção de idioma:

function rssLanguage(){
        update_option('rss_language', 'en');
}
add_action('admin_init', 'rssLanguage');

Depois de fazer isso, edite o segundo argumento da função update_option para alterar o idioma para o que você precisa. Confira a lista completa de Códigos de Idioma RSS.

Depois de salvar o snippet, o erro será removido e você poderá visualizar seu feed RSS personalizado.

Esperamos que este artigo tenha ajudado você a aprender como criar um feed RSS personalizado no WordPress. Você também pode querer ver nosso guia passo a passo sobre como criar feeds RSS separados para cada categoria em seu blog WordPress e nossas dicas de especialistas para otimizar seus feeds RSS do WordPress.

Se você gostou deste artigo, por favor, inscreva-se em nosso Canal do YouTube para tutoriais em vídeo do WordPress. Você também pode nos encontrar no Twitter e no Facebook.

Aviso: Nosso conteúdo é apoiado pelos leitores. Isso significa que, se você clicar em alguns de nossos links, poderemos ganhar uma comissão. Veja como o WPBeginner é financiado, por que isso importa e como você pode nos apoiar. Aqui está nosso processo editorial.

O Kit de Ferramentas Definitivo para WordPress

Obtenha acesso GRATUITO ao nosso kit de ferramentas - uma coleção de produtos e recursos relacionados ao WordPress que todo profissional deve ter!

Interações do Leitor

70 CommentsLeave a Reply

  1. obrigado por este artigo informativo
    posso usar este método para criar um feed rss para produtos woocommerce?
    (é um site de afiliados de ofertas baseado em woo)

  2. Seguindo este tutorial, por algum motivo a alteração de $postCount não funciona.

    Ex,
    $postCount = 20; // O número de posts a serem exibidos no feed

    Somente alterando o número padrão nas configurações de Leitura do WordPress funciona. Muito estranho. Como podemos sobrescrever as configurações do WordPress ou impedir que as configurações do WordPress substituam nosso código?

    • Seu tema específico pode estar sobrescrevendo o número de posts a serem exibidos, recomendamos primeiro verificar com o suporte do seu tema específico e eles devem ser capazes de ajudar.

      Admin

  3. Existe alguma maneira de tornar isso permanente? Tenho que repetir esta etapa a cada poucas semanas quando o tema é atualizado.

  4. Preciso criar um feed XML para uma página específica do meu site Wordpress. Aqui está a página, terei que editar meu arquivo functions.php ou existe uma maneira mais fácil?

  5. Olá,

    Este artigo é muito útil, mas tive alguns problemas.

    Eu fiz exatamente como no seu código. Mas me dá um erro como
    Esta página contém os seguintes erros:

    erro na linha 1 na coluna 7: declaração XML permitida apenas no início do documento
    Abaixo está uma renderização da página até o primeiro erro.

    Você poderia me ajudar a descobrir o que pode ter dado errado aqui?
    Isso é muito importante para mim.

    Obrigado.

  6. Olá, é possível alterar a ordem das postagens nos meus feeds sem criar um novo feed personalizado? Quero usar os arquivos de feed atuais, mas apenas mudar a ordem exibida deles. Usando consultas PHP como exemplo, mudando a ordem de DESC para RAND()

    Agradecerei sua ajuda. Obrigado.

  7. Ótimo post! Eu definitivamente me enquadro no status de novato. Muitos leitores/agregadores de feed não parecem gostar da estrutura de URL /feed/, mesmo que o xml retornado valide. Existe alguma maneira de anexar a url para terminar com rss.xml?

  8. Sinto dizer, mas a implementação dos códigos para rss personalizado efetivamente apagou todo o meu blog. Tive que fazer um restore e está demorando muito para recuperar meu blog. Algum conselho?

    • Você precisa se conectar ao seu site via FTP ou ao navegador de arquivos do seu provedor de hospedagem no cPanel e simplesmente remover o que você adicionou. Se você adicionou o código como um plugin personalizado, então apenas renomeie a pasta do plugin. Se você adicionou o código em functions.php, edite o arquivo e remova o código. Não se esqueça de fazer backup do arquivo antes de editar. Espero que isso ajude para a próxima vez.

  9. Deixe pra lá, funciona. Tive um bug com o YOAST SEO que com a remoção do prefixo /category/. Eu os avisei, espero que eles corrijam.

  10. Olá, obrigado pelo artigo, mas parece que isso só funcionará para o feed principal do site, não para os feeds de categorias específicas:

    mysite.com/category/mycat/feed/feedname/

  11. Não funciona mais.
    Recebi um erro 404, então ativei o modo de depuração. O modo de depuração diz “Notice: The Called Constructor Method For WP_Widget Is Deprecated Since Version 4.3.0! Use __construct()”

  12. infelizmente isso é restrito em sua utilidade. inserir capturas de tela e páginas de exemplo seria muito útil, particularmente para amadores/novatos como eu.

  13. Por favor, veja as capturas de tela abaixo – o que determina os “…” ou “[…]” ou “Leia Mais ->” etc. etc. nos feeds?

    Estou usando o /feed padrão em 2 sites WP diferentes e essas 2 capturas de tela obviamente estão mostrando algo diferente no final de seus excertos. Obrigado!

  14. Desculpas, mas esse código não veio claro lol. Vamos tentar de novo. Vá aqui para ver o código exato e bruto que estou tentando remover:

  15. Ei, quero excluir certos post_formats do meu feed rss personalizado. Isso é possível e, em caso afirmativo, como?

  16. Olá,

    Quando tento visualizar o feed, recebo um erro de página 404 não encontrada. Estou tentando adicionar o código:

    global $wp_rewrite;
    $wp_rewrite->flush_rules();

    então eu também recebi o mesmo erro. Isso pode ser o motivo?

    • Consegui fazer funcionar perfeitamente graças a birgire no Stack exchange:

      add_action( ‘init’, ‘custom_feeds’ );

      function custom_feeds()
      {
      foreach( array( ‘feedname1’, ‘feedname2’ ) as $name )
      {
      add_feed( $name,
      function() use ( $name )
      {
      get_template_part( ‘rss’, $name );
      }
      );
      }
      }

  17. O botão “seguir” aparece no canto inferior direito ao visualizar posts em um computador pessoal, mas não aparece ao visualizar em um dispositivo móvel (smartphone) (a menos que eu esteja apenas perdendo).

  18. Desculpe, mas tudo sobre isso é enganoso. isso não é trabalho para “iniciantes”. e não está escrito para iniciantes. Isso é totalmente irresponsável e pode causar grandes problemas aos sites das pessoas.

  19. Consegui fazer isso funcionar (mais ou menos). A página de feed existe, mas não valida e diz que há um erro na linha 1.

    Copiei o código exatamente desta página e não mudei nada. O que pode estar dando errado aqui?

  20. Olá,

    Por favor, preciso de ajuda para configurar meu RSS para mostrar todo o conteúdo do meu post, não apenas um trecho dele.

    Obrigado.

  21. Olá,
    Preciso mostrar apenas a data sem a hora para pubDate. Quando eu uso

    Não funciona para Firefox, IE.
    Você pode me ajudar?

    Agradeço desde já!

  22. Olá.

    Eu gostaria de mudar o padrão de atualização do feed com

    sy:updatePeriod
    echo apply_filters( ‘rss_update_period’, ‘weekly’ );
    /sy:updatePeriod

    sy:updateFrequency
    echo apply_filters( ‘rss_update_frequency’, ‘1’ );
    /sy:updateFrequency>

    sy:updateBase
    2015-03-29T01:00:00+09:00
    /sy:updateBase

    Mas, tudo o que tentei, ele adiciona automaticamente um novo post quando eu o publico e não espera até domingo (conforme definido no código acima) para adicioná-lo ao RSS.

    Você tem alguma sugestão? Talvez eu precise encontrar uma solução dentro do WP Query?

    Sua ajuda seria muito apreciada.

  23. Olá.

    Eu gostaria de mudar o padrão de atualização do feed com

    2015-03-29T01:00:00+09:00

    Mas, tudo o que tentei, ele adiciona automaticamente um novo post quando eu o publico e não espera até domingo (conforme definido no código acima) para adicioná-lo ao RSS.

    Você tem alguma sugestão? Talvez eu precise encontrar uma solução dentro do WP Query?

    Sua ajuda seria muito apreciada.

  24. Olá. Tentei fazer como você mencionou, mas vi que meu site não consegue acessar a página de feed. Este é o meu site. Tentei usar /feed e muitas palavras que são mencionadas em wordpress.com ou wordpress.org, até mesmo no Google. Por favor, me ajude.

  25. O que determina que o feed será exibido em feed/feedname? Tentei seguir o tutorial, mas não tive sorte nenhuma. O feed não está sendo publicado em feed/feedname.php

  26. Seguindo exatamente estes passos, obtive este erro:

    Erro fatal: Não é possível redeclarar get_bloginfo_rss() (anteriormente
    declarado em
    /home/public_html/wp-includes/feed.php:25)
    em /home/public_html/wp-content/themes/xxx/rss-name.php na linha 39

  27. Olá,

    Meu feed está OK quando este código é adicionado:

    global $wp_rewrite;
    $wp_rewrite->flush_rules();

    e retorna um 404 quando é removido.
    Eu só o removo conforme suas instruções, que é removê-lo após recarregar o wordpress.

    Neste momento, estou testando em meu servidor local. Isso pode ser o motivo?

  28. Hi there. Thanks for this post! Really appreciated. Worked well at first go! :)

    Eu também gostaria de alguma assistência como Brian abaixo. Para o texto completo no RSS em vez do resumo do post.

    Agradeço antecipadamente.

  29. Estou tentando adicionar um segundo feed RSS que seja de texto completo (meu primeiro feed RSS é de resumo). Se eu quisesse que este feed RSS personalizado fosse de texto completo em vez de um resumo, o que eu mudaria?

    Muito obrigado!

  30. Obrigado por isso. Exatamente o que eu estava procurando!

    Tive um problema ao usar add_feed(). Eu conseguia visualizar o feed RSS no navegador normalmente, mas ele retornava um 404 quando eu inseria a URL em um aplicativo de terceiros (por exemplo, MailChimp, validador de feed W3C, etc.). Eu já havia tentado limpar os permalinks, etc.

    A única maneira que encontrei para contornar o problema foi criar uma nova página em branco e selecionar o template como o que você descreveu neste artigo.

    Não tenho certeza por que não funcionou, mas espero que isso ofereça uma solução viável para outras pessoas nesta situação.

    Obrigado novamente!

  31. Seu artigo está exatamente no caminho do que eu estava procurando. Uma pergunta que tenho (como um novato em RSS), como posso adicionar um link a um feed RSS?
    O site para o qual preciso disso é uma igreja e gostaria de ter um feed personalizado que facilitasse aos nossos membros serem alertados sobre novas postagens de sermões (que tenham links de download de mp3).
    Atualmente, o feed mostra o texto dos links que criei nas postagens dos sermões. Mas ele só funciona como texto. Qualquer ajuda seria apreciada.

    • Acabei de notar que não fiz minha pergunta corretamente.
      O que eu estava tentando perguntar era, como posso exibir um link no Feed RSS? Os links que estão no conteúdo das minhas postagens estão quebrados no feed.
      Obrigado pela sua ajuda e por este artigo.

    • Ainda curioso, se alguém souber por que meus links estariam quebrados e aparecendo apenas como texto simples em um feed?
      Para ver o que quero dizer, confira: http://amfmchurch.com/feed
      Você verá "Download" em texto simples. Eu gostaria de fazer com que as pessoas possam clicar no link de âncora e baixar o mp3. Isso funciona bem no site real.

      Obrigado por qualquer ajuda.

  32. Olá, eu tenho o feed rss padrão.. mas eu gostaria de poder reduzir o tamanho das imagens do que é exibido na postagem…. (para uma largura máxima de 265px) OU usar apenas a miniatura da postagem no rss.

    Alguma das opções acima é possível?

    O motivo pelo qual estou procurando fazer isso é que meu feed RSS é usado por um aplicativo, e o aplicativo só exibe imagens com até 265px de largura (antes da rolagem horizontal), e 265px é muito limitante para posts de blog online/PC…

  33. Obrigado por isso! Estou criando uma parte de localização RSS personalizada em um plugin que estou desenvolvendo. Como resultado, incluí o texto para o RSS personalizado na função, não em um template de tema. Está funcionando. No entanto, não parece funcionar quando quero restringir o feed a uma categoria. Ele exibe todas as postagens, independentemente. Alguma ideia?

  34. Olá,

    Obrigado, essas explicações são realmente úteis. Acabei de usá-las para personalizar meu feed para que eu pudesse colocar uma imagem no recurso "RSS para e-mail" do Mailchimp.

    Muito obrigado!

  35. Olá,

    Até ontem à tarde, meu blog Wordpress (versão 3.6.1) http://theoff.info/wordpress/ não tinha problemas. E eu adicionei novos plugins com sucesso.

    À noite, os problemas começaram: (1) Não consegui fazer login. (2) o feed RSS http://theoff.info/wordpress/?feed=rss2 ficou corrompido. O feed falhou na validação.

    Eu pesquisei na Web e no Fórum de Suporte do WordPress por soluções. Tentei o seguinte:
    (i) redefini o password com sucesso
    (ii) excluí novos plugins do ftp
    (iii) renomeei a pasta do Tema adicionando “-old” e a pasta de plugins adicionando “-hold” do ftp

    Então consegui fazer login e atualizar para a versão 3.7.1 e fazer alterações no blog.

    No entanto, o login ainda é um problema. Toda vez que sigo o método mencionado no passo (iii) para fazer login.

    O RSS ainda não valida.

    Você poderia ajudar a resolver os problemas de login e do feed RSS?

    Observação: Meu provedor de hospedagem não oferece ajuda técnica. Não sou um profissional de TI, ou seja, tenho muito pouco conhecimento técnico.

    Obrigado

    • É difícil de descobrir. Aqui está uma coisa que você pode tentar.

      1. Usando FTP, baixe seus plugins para o seu computador para backup e, em seguida, exclua seu diretório de plugins.
      2. Crie um novo diretório de plugins.
      3. Instale todos os seus plugins um por um, baixando uma cópia nova do plugin da fonte. Após ativar cada plugin, saia e entre novamente para ver se o problema ocorre novamente. Você provavelmente encontrará um plugin que pode estar causando o problema ou não. Isso pode significar que um arquivo de plugin no seu site pode ter sido comprometido.

      Se este processo não ajudar, repita este processo com seus temas também. Se você fez muitas alterações em seus temas existentes, talvez queira fazer backup no seu computador baixando a pasta do tema via FTP. Em seguida, exclua a pasta de temas do seu servidor web e crie um novo diretório de temas na pasta wp-content do seu servidor. Na área de administração do WordPress, baixe e instale uma cópia nova do tema padrão twenty thirteen.

      Informe-nos o que acontece quando você fizer tudo isso. Certifique-se de fazer backup do seu site primeiro.

      Admin

  36. Olá,

    Ao tentar abrir o novo feed, recebo uma mensagem de erro:

    Erro fatal: Chamada para a função indefinida query_posts() em /xxxx/wp-content/themes/xxx/rss-feedname.php na linha 6

    Tentei no localhost e na hospedagem web, é o mesmo...

    Como posso corrigir isso?

    Obrigado

Deixe uma resposta

Obrigado por escolher deixar um comentário. Por favor, tenha em mente que todos os comentários são moderados de acordo com nossa política de comentários, e seu endereço de e-mail NÃO será publicado. Por favor, NÃO use palavras-chave no campo do nome. Vamos ter uma conversa pessoal e significativa.