Categorías: Tutoriales

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.

F. Javier Carazo Gil

Cofundador de CODECTION, empresa especializada en WordPress, autor de un libro sobre WordPress (el primero en español) y multitud de artículos (en medios físicos y virtuales) sobre el tema. Participa en la comunidad WordPress de forma activa siendo parte del equipo organizador de la WordPress Meetup de Córdoba, dando charlas en diferentes WordCamp y siendo autor y coautor de multitud de plugins libres y premium para WordPress de gran éxito.

Ver comentarios

Entradas recientes

Nueva versión de OnlyOffice Docs

Desde el equipo de ONLYOFFICE se han puesto en contacto con nosotros para contarnos que…

2 semanas hace

EOF

2 meses hace

CERN

2 meses hace

Agua

2 meses hace

Aire acondicionado

2 meses hace

Eclipse

3 meses hace