Icono del sitio Imacreste

Artículos relacionados por etiqueta con WordPress

Vamos a practicar un poco con el bucle de WordPress creando un bucle anidado en donde mostremos los artículos relacionados por etiqueta.

Ejemplo

<?php
if (have_posts()):
while (have_posts()):
the_post();
the_title('<h1>','</h1>');
the_content();
$etiquetas = wp_get_post_terms(get_the_ID());
if ($etiquetas){
echo "<h2>Artículos Relacionados</h2>";
$num_etiquetas=count($etiquetas);
for ($i=0;$i<$num_etiquetas;$i++){
$IDetiqueta[$i]=$etiquetas[$i]->term_id;
}
$args=array('tag_in' => $IDetiqueta, 'post_not_in' => array($post->ID), 'posts_per_page'=> 10);
$relacionados = new WP_Query($args):
if ($relacionados->have_posts()){
while ($relacionados->have_posts()):
$relacionados->the_post();
the_title('<h2>','</h2>');
endwhile;
}
} 
endwhile; 
endif; 
?>

Explicación del ejemplo

En primer lugar mostramos el contenido de una página individual, mostrando su título y contenido, y recogiendo en una variable todas las etiquetas del post actual mediante la función wp_get_post_terms(). Si el artículo no tiene etiquetas asociadas, no se muestran relacionados, y si tiene creamos una array con todos los IDs que luego pasamos en la nueva consulta ($relacionados), junto al número de artículos relacionados a mostrar y filtrando el artículo actual, ya que no queremos que muestre como relacionado el propio artículo que se esta visualizando.

Finalmente se recorre el bucle y se aporta diseño a los artículos relacionados.

Con este ejemplo podemos ver lo sencillo que es recorrer la información almacenada en la base de datos, no son necesarios conocimientos de SQL ni de PHP, solo es necesario familiarizarse con las funciones y etiquetas WordPress.

Siendo sinceros, prefiero usar funciones SQL, ya que me siento con más libertad, pero esta claro que de esta forma ahorrar código fuente y la curva de aprendizaje es menor. En otra ocasión veremos como podemos acceder a la base de datos usando la función de WordPress: $wpdb, y crear SQLs a medida, pero bajo el paraguas de seguridad (siempre que tengamos actualizado y bien instalado) de WordPress.

Salir de la versión móvil