Supongamos que en tu Index se encuentran dos Loops diferentes y no quieres que los contenidos se repitan, según el Loop con el que estés trabajando no podrás controlar las entradas duplicadas.

Pero con este pequeño hack dentro de tus Loops podrás evitar el contendido duplicado.

Veamos nuestro primer Loop de ejemplo con el hack ya implementado:

<?php
$do_not_duplicate = array(); // como array antes del loop
 
// 1. Loop
query_posts('cat=1,2,3&showposts=5');
while ( have_posts() ) : the_post();
    $do_not_duplicate[] = $post->ID; // recordar ID's en  este loop
    // mostrar entradas ...
    the_title();
endwhile;
?>

Como WordPress identifica cada entrada con una ID especifica, lo que hacemos es guardar cada ID en este primer Loop y luego la imprimiremos en el segundo Loop para evitar que se repita.

Ahora, nuestro segundo Loop puede lucir así:

<?php
// 2. Loop
query_posts( 'cat=4,5,6&showposts=15' );
while (have_posts()) : the_post();
    if ( !in_array( $post->ID, $do_not_duplicate ) ) { // corroborar ID's         
// mostrar entradas...
        the_title();
    }
endwhile;
?>

Si el ID de la entrada coincide y existe en nuestro primer Loop no se mostrara, en caso contrario si.

Como alternativa tambien podemos usar la variable post__not_in que en resumen presta la misma funcionalidad a la hora de no repetir ID’s

Entonces nuestro segundo Loop va a lucir de la siguiente forma:

// otro loop sin entradas duplicadas
query_posts( array(
    'cat' => 456,
    'post__not_in' => $do_not_duplicate
    )
);
while ( have_posts() ) : the_post();
    // mostrar entradas...
        the_title();
endwhile;
?>

Con simples simples hacks vas evitar el contenido duplicado en tus Loops. lo cual es bueno para SEO y evitar problemas de validación en ciertos casos.

Visto en WpEngineer