08.06.2010

Exibir os posts relacionados no WordPress sem precisar instalar plugin

Existe uma maneira de exibir no WordPress os posts relacionados sem precisar instalar um plugin. A vantagem é que você pode editar da maneiro que quiser a estrutura de como vai ser exibida esses posts relacionados.

Você pode exibir esses posts relacionados pelas tags ou pela categorias. Ou seja, posts que tiverem as mesmas tags/categorias irão aparecer nessa lista de posts relacionados.

Exibir os post relacionados pelas tags

Abra o arquivo single.php por exemplo, e nele adicione o código dentro do if do post:

<?php 
	$tags = wp_get_post_tags($post->ID); 
	if ($tags) { 
		$tag_ids = array(); 
		foreach($tags as $individual_tag) 
			$tag_ids[] = $individual_tag->term_id; 
 
		$args=array( 
			'tag__in' => $tag_ids, 
			'post__not_in' => array($post->ID), 
			'showposts'=>5, // Number of related posts that will be shown. 
			'caller_get_posts'=>1 
		); 
		$my_query = new wp_query($args); 
		if( $my_query->have_posts() ) { 
			echo '<h3>Related Posts</h3><ul>'; 
			while ($my_query->have_posts()) { 
				$my_query->the_post(); ?> 
				<li><a href="<?php the_permalink() ?>" rel="bookmark" title="Permanent Link to <?php the_title_attribute(); ?>"><?php the_title(); ?></a></li> 
			<?php } 
			echo '</ul>'; 
		} 
	} 
?>

Exibir os post relacionados pelas categorias

Abra o arquivo single.php por exemplo, e nele adicione o código dentro do if do post:

<?php 
	$categories = get_the_category($post->ID);  
	if ($categories) {  $category_ids = array();  
		foreach($categories as $individual_category)  
			$category_ids[] = $individual_category->term_id; 
 
		$args=array( 
			'category__in' => $category_ids, 
			'post__not_in' => array($post->ID), 
			'showposts'=>5, // Number of related posts that will be shown. 
			'caller_get_posts'=>1 
		); 
		$my_query = new wp_query($args); 
 
		if( $my_query->have_posts() ) { 
			echo '<h3>Related Posts</h3><ul>'; 
			while ($my_query->have_posts()) { 
				$my_query->the_post(); ?> 
				<li><a href="<?php the_permalink() ?>" rel="bookmark" title="Permanent Link to <?php the_title_attribute(); ?>"><?php the_title(); ?></a></li> 
			<?php } 
			echo '</ul>'; 
		} 
	} 
?>

Importante!

É importante lembrar que os dois códigos são feitos utilizando o método wp_query. Isso quer dizer que a sua query de post vai ser sobrescrita. Para que isso não aconteça usamos a função wp_reset_query(). Ela reseta a query para a padrão da página. Um exemplo de erro que pode está acontecendo com você é colocar os posts relacionados antes da lista de comentários do post. Nesse caso você verá que os comentários ficaram bugados. Para resolver isso inclua o seguinte código antes da chamada dos comentários:

<?php  
	// aqui entra o código do seu post 
	// aqui entra o código de posts relacionados 
	wp_reset_query(); // aqui você reseta a query 
	comments_template(); // sua função que chama seus comentários 
?>

13 respostas a "Exibir os posts relacionados no WordPress sem precisar instalar plugin"

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *