Em alguns casos a personalização do RSS do WordPress é extremamente importante dependendo da necessidade de cada projeto. Grandes portais publicadores de conteúdo relacionados a notícias ou estudos utilizam sistemas de Feed para captar os artigos publicados em seu site.
Através deste artigo será possível criar um RSS Feed personalizado exatamente para essa necessidade.
1 – Primeiro passo para o Feed Personalizado
Localize o diretório do seu tema e implemente o código abaixo dentro do arquivo functions.php.
add_action('init', 'customRSS'); function customRSS(){ add_feed('rssportal', 'customRSSFunc'); }
Após isso, insira logo abaixo este código também que fará o reconhecimento do feed pelo seu nome.
function customRSSFunc(){ get_template_part('rss', 'rssportal'); }
Com a utilização do get_template_part ele fará uma busca pelo arquivo de feed através do nome “rssportal” seguindo a rotina abaixo:
wp-content/themes/child/rssportal.php
wp-content/themes/parent/rssportal.php
wp-content/themes/child/rss.php
wp-content/themes/parent/rss.php
2 – Personalizando o código do Feed
Com o código abaixo é possível personalizar seu feed da maneira que achar melhor, para isso, crie um arquivo chamado “feedportal.php” e cole o código abaixo dentro do diretório do seu tema. Aplicando somente as diretrizes necessárias para as suas necessidades. Neste caso o código começa contando apenas “5 Posts” através da função “$postCount = 5;” onde pode ser facilmente alterada para uma quantidade maior.
<?php /** * 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>
3 – URL do arquivo do novo RSS Feed
Com todos os passos acima concluídos é hora de acessar o seu feed que estará disponível através do link: http://meusite.com.br/feed/rssportal. Caso ocorra algum erro na exibição do XML, entre em seu painel do WordPress e vá até “Configurações > Links Permanentes” e clique em “Salvar”.
A ação fará com que seu FEED passe a funcionar e atualize com os últimos posts.
3 respostas
Olá! Segui o tutorial dessa forma, mas quando digito a url do novo feed, ele não abre a página. Apenas faz o Download do arquivo em meu computador. O que pode ser? Obrigado
Olá, realmente mim ajudou muito, obrigado
Olá! Comigo aconteceu a mesma coisa, segui o tutorial dessa forma, mas quando digito a url do novo feed, ele não abre a página. Apenas faz o Download do arquivo em meu computador. Como resolver?