Evitar entradas duplicadas en el loop de WordPress

Por motivos que pueden tener que ver con filtros o mala utilización de las consultas personalizadas para loops, es posible que en alguna ocasión suframos un problema: aparece contenido duplicado en nuestro blog o sitio realizado en WordPress.

Para evitar este problema, crearemos un array con los identificadores de las entradas, de forma que sepamos cuáles han sido ya mostradas en el loop actual y así evitar que se muestren dos veces. Tened en cuenta que las entradas están identificadas con su respectivo número entero que es su clave primaria, el identificador.

Veamos directamente el código:

$do_not_duplicate = array(); // inicializamos
query_posts('ca=1,2,3'); // nuestra query
while ( have_posts() ) : 
    the_post();
    if (!in_array($post->ID, $do_not_duplicate)){ // comprobamos
        the_title();
        the_content();
    }
    $do_not_duplicate[] = get_the_ID(); // remember ID's in loop
endwhile;
?>

Podría también utilizarse el parámetros de la petición: post__not_in para hacer ‘post__not_in’ => $do_not_duplicate, para evitar el condicional. Como veis WordPress nos presenta multitud de alternativas.