Artículos Post y Entradas Relacionadas sin Plugins WordPress

Si estabas utilizando el plugins de simple tag para mostrar tus entradas relacionadas u otro similar. Después de una actualizacion de WordPress algunos plugins pueden dejar de ser compatibles con la nueva versión y causan una serie de problemas. Buscando alternativas para mis entradas articulos o post relacionados, al final opte por ponerlo de forma manual, insertar el codigo de forma manual a mi plantilla de WordPress para que mostrara las entradas relacionadas.

post-relacionados

Pero al intentar con uno y luego con otros códigos que andan por la Red me tope con ciertos problemas que a continuación les cuento.

  • El primero es que a veces en algunos artículos no me mostraba ninguna entrada o post relacionado.
  • El segundo problema es que los comentarios no se mostraban.
  • El tercer problema es si escribías un comentario en un articulo, el comentario se iba a cualquier otro.
  • Puede que haya mas, pero son con los que me he topado.

Código de entradas relacionadas sin plugins que crean problemas

Estos son los códigos que he probado y que me han causado algunos problemas en los comentarios y de algunas entradas que no se muestran. Este de aquí lo he sacado del sitio de http://ayudawordpress.com/posts-relacionados-sin-plugin/

<?php
//para poner en el loop, muestra 5 titulos de post relacionados con la primera tag del post actual
$tags = wp_get_post_tags($post->ID);
if ($tags) {
echo 'Post relacionados';
$first_tag = $tags[0]->term_id;
$args=array(
'tag__in' => array($first_tag),
'post__not_in' => array($post->ID),
'showposts'=>5,
'caller_get_posts'=>1
);
$my_query = new WP_Query($args);
if( $my_query->have_posts() ) {
while ($my_query->have_posts()) : $my_query->the_post(); ?>
<p><a href="<?php the_permalink() ?>" rel="bookmark" title="Enlace permanente a <?php the_title_attribute(); ?>"><?php the_title(); ?></a></p>
<?php
endwhile;
}
}
?>

Este otro que es casi parecido al otro, http://www.bin-co.com/blog/2009/04/show-related-post-in-wordpress-without-a-plugin/

<?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>';
}
}
?>

Y despues de tanto buscar y preguntar por ahi, di con el codigo que por el momento me funciona bien. http://www.3mind.at/2009/05/06/code-highlighting/. Tienes que copiar el siguiente codigo en el index.php o single.php de tu plantilla.

Código de entradas relacionadas sin plugins que funciona 100%

<?php //for use in the loop, list 5 post titles related to first tag on current post
$backup = $post; // backup the current object
$tags = wp_get_post_tags($post->ID);
$tagIDs = array();
if ($tags) {
$tagcount = count($tags);
for ($i = 0; $i < $tagcount; $i++) {
$tagIDs[$i] = $tags[$i]->term_id;
}
$args=array(
'tag__in' => $tagIDs,
'post__not_in' => array($post->ID),
'showposts'=>5,
'caller_get_posts'=>1
);
$my_query = new WP_Query($args);
if( $my_query->have_posts() ) {
while ($my_query->have_posts()) : $my_query->the_post(); ?>
<h3><a href="<?php the_permalink() ?>" rel="bookmark" title="<?php the_title(); ?>"><?php the_title(); ?></a></h3>
<?php endwhile;
} else { ?>
<h2>No related posts found!</h2>
<?php }
}
$post = $backup; // copy it back
wp_reset_query(); // to use the original query again
?>

Fuentes: Mencionadas en cada código

Descubre más

6 Commentarios

  1. Agradezco su publicación, ya que a mí me ocurrió lo mismo. He
    probado el código último que dice funcionar al 100% y funcionó. Lo
    intale en mi Blog y en el single.pho Gracias de nuevo

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *