Posts relacionados por categorias ou tags no WordPress
Caso não se queira usar plugins para retornar uma lista dos posts realcionados em seu blog WordPress, você pode, colocar o código diretamente em seu tema. No geral, você encontra, em vários lugares o código para mostrar os relacionados por tag (a primeira ou a última delas). Mas, se as cotegorias forem mais relevantes? Neste caso, pode-se usar uma adaptação do código.
Se preferir, pode usar um plugin para relacionados por categoria que funciona muito bem, mas, como disse, a idéia aqui não usar plugins.
Posts relacionados por categoria
<?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'=>6, // Quantidade de itens na lista 'caller_get_posts'=>1 ); $my_query = new wp_query($args); if( $my_query->have_posts() ) { echo '<h3>Artigos relacionados</h3><ul>'; while ($my_query->have_posts()) { $my_query->the_post(); ?> <li><a href="<?php the_permalink() ?>" title="<?php the_title_attribute(); ?>"><?php the_title(); ?></a></li> <?php } echo '</ul>'; } } ?>
Mas se, o interessante forem as tags, o código é o seguinte:
Artigos relacionados por tags
<?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,
// Quantidade de itens na lista'caller_get_posts'=>1
); $my_query = new wp_query($args); if( $my_query->have_posts() ) { echo '<h3>Artigos relacionados</h3><ul>'; while ($my_query->have_posts()) { $my_query->the_post(); ?> <li><a href="<?php the_permalink() ?>" title="<?php the_title_attribute(); ?>"><?php the_title(); ?></a></li> <?php } echo '</ul>'; } } ?>
Esta dica está presente em um monte de blogs, mas para este post, consultei o Bin Blog.