Drawmehere

Sites simples, bonitos e eficazes

Somos uma agência de internet especializada na criação de sites de sucesso, ou seja, que convertem. Eles seguem um alto padrão de qualidade, seguindo os Padrões Web (Web Standards) e regras essenciais de SEO (Otimização para buscadores, Google, Yahoo, Bing, etc.) se tornando uma real ferramenta para atrair mais visitantes e potenciais clientes. Veja nossos serviços.

Como personalizar o RSS/Feed do WordPress sem plugin

Em diversos blogs e sites que criamos há a necessidade de personalizar o RSS/Feed do WordPress com alguma imagem, links, formatação html e até css diferenciada. E essa função permite fazer isso de forma simples e o mais importante sem plugin.

Plugins do WordPress são ótimos, mas a maioria é cheia de código desnecessários que naturalmente deixam seu blog ou site mais devagar. Então se você pode inserir simples funções no arquivo functions.php tenha certeza que estará otimizando seu blog ou site.

Por que personalizar o feed do WordPress?

  • O feed do seu blog pode estar sendo usado por outro parasita blogueiro para gerar conteúdo automaticamente. Então com essa função você pode inserir um link de volta para o seu site, assim se o conteúdo for copiado, você terá mais chance de pelo menos ter um link de volta para seu blog.
  • Você pode inserir anúncios específicos para assinantes do seu Feed. Ou até links para promoção exclusiva, conteúdo especial ou algo gratuito exclusivo para seus leitores assíduos.

Funções para inserir conteúdo no Feed do WordPress

Entenda essas funções mais abaixo.

// personalizar rss/feed
function inflar_custom_feed_content($content) {
	global $wp_query;
	$post_id = $wp_query->post->ID;
		
	if(is_feed()) {
		// pega o campo personalizado de nome image
		$image_url = get_post_meta($post_id, 'image', true);
		
		// caso vazio pega a imagem destacada
		if($image_url == ''){
			$image_url = get_the_post_thumbnail_src(get_the_post_thumbnail($post_id,'thumbnail'));
		}
		
		$content = '<a href="'.get_permalink($post_id).'" target="_blank"><img src="'.$image_url.'" style="float:left;margin-right:6px;"/></a>'.$content;
	}
	return $content;
}
add_filter('the_excerpt_rss', 'inflar_custom_feed_content'); //altera a versão resumida do post
add_filter('the_content', 'inflar_custom_feed_content'); // altera a versão completa do post

// extrair apenas a url do thumbnail
function get_the_post_thumbnail_src($img){
  return (preg_match('~\bsrc="([^"]++)"~', $img, $matches)) ? $matches[1] : '';
}

Na verdade é apenas uma função para alterar o conteúdo do RSS/Feed do WordPress, mas eu inseri também uma função para extrair apenas a url do thumbnail do post e assim inserir a imagem destacada no feed.

Não é aconselhável inserir tags html na descrição do feed, então talvez seja interesse remover essa linha:

add_filter('the_excerpt_rss', 'inflar_custom_feed_content'); //altera a versão resumida do post

Deixe seu comentário com dúvidas.

8 Responses to “Como personalizar o RSS/Feed do WordPress sem plugin”

  1. TIago disse:

    Boa tarde!

    Muito bom o post, porém ficou uma duvida. Você diz para inserir o código no functions.php, poderia detalhar melhor essa parte, é só colar lá em qualquer lugar que vai funcionar? Não precisamos editar nada nos outros arquivos responsávei pelo feed, tal como o feed-rss2.php?

    Seria possível detalhar melhor o processo?

    No meu caso os feeds funcionam perfeitamente, tudo que eu quero é inserir uma imagem no feed seja ela de dentro do post ou imagem destacada do mesmo.

    Agradeço ajuda, abraços.

  2. Dan disse:

    Isso mesmo Tiago, é só colocar em qualquer lugar no functions que irá funcionar.

    Em WordPress você consegue fazer tudo com as funções add_filter ou add_action. Nunca edite os arquivos fora da pasta wp-content.

    Abraço!

  3. Marcello disse:

    Bom dia, qual o arquivo que altero isso ou incluo, preciso fazer um arquivo xml para que um site de imovies leia o arquivo e cadastre automaticamente meu conteudo, estou com wordpress, você pode me ajudar?

  4. Legal essa dica amigo , eu nem imaginava isso , parabéns

  5. doorx9.com disse:

    amigo salvou a minha vida 3 dias procurando por isso foi o unico ke funfou com temas woo . muito obrigadoooooooooooo

  6. Pedro disse:

    Excelente explicação e funcionalidade. Agora eu tenho uma dúvida, em meu site eu configuro para as imagens aparecerem num tamanho máximo de 600px, mas as vezes as originais possuem tamanho superior. Ao adicionar essa personalização as imagens aparecerem no feed com tamanho original, tem alguma forma de configurar a sua exibição num tamanho menor?

    Ficarei grato caso possa me ajudar.

    Pedro

  7. Dan disse:

    Pedro,

    Tem algumas formas de fazer isso.
    Aqui nessa página você consegue uma explicação melhor: http://codex.wordpress.org/Function_Reference/the_post_thumbnail
    Vou colocar a parte que você precisa:

    the_post_thumbnail(); // without parameter -> 'post-thumbnail'

    the_post_thumbnail('thumbnail'); // Thumbnail (padrão 150px x 150px max)
    the_post_thumbnail('medium'); // Resolução média (default 300px x 300px max)
    the_post_thumbnail('large'); // Resolução grande (default 640px x 640px max)
    the_post_thumbnail('full'); // Resolução tamanho original (original size uploaded)

    the_post_thumbnail( array(100,100) ); // Outra resoluções, você define

    Você pode usar essa função também, ex: $img = get_the_post_thumbnail(array(100,100));

    Espero ter ajudado.
    Abraço

  8. Dan disse:

    É só copiar o código e colocar em seu functions.php dentro da pasta do tema.

Fale alguma coisa!