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 ?> |