Como no repetir posts que ya aparecen en el front-page.php?

Con la nueva versión Release Candidate 3.0 de WordPress, se puede utilizar una página de inicio diferente a la contenedora del lazo principal y de esta manera poder personalizar de mejor manera nuestro sitio web.

Sin embargo, hoy estuve colocando algunas cosas en la página principal de uno de mis clientes y al inicio de esta, se encuentran una especie de “Titulares” (con etiqueta Titulares) que luego no quisiera mostrar nuevamente en el resto de la página (en una sección de la página muestro otros resultados de diversas categorías incluyendo “Titulares”). Luego de una búsqueda insaciable y de probar con diferentes opciones, llegué al sitio más lógico donde se debe llegar cuando se necesita ayuda con algún argumento de una función: WordPress Codex.

Con el argumento 'post__not_in' => array() es posible obtener resultador de un WP_query() sin los elementos específicos que le indiquemos al lazo. En mi caso, en cada “query” voy armando el arreglo de los elementos que estoy mostrando para así evitar mostrarlos nuevamente. El código es algo parecido a lo siguiente:

$titleImg = new WP_Query();
$titleImg->query('cat=3&showposts=5');
$i = 0;
$mainPostID = array();
while ($titleImg->have_posts()) : $titleImg->the_post();
$firstImage = ev_get_firstimage();
$curPostID = $post->ID;
$mainPostID[$i] = $curPostID;
$i++;
... Resto del código

Luego, llamo al arreglo $mainPostID en el próximo query:

<?php
$args = array (
'showposts'=>4,
'cat'=>-7,
'post__not_in'=>$mainPostID,
);
$miniNews = new WP_Query();
$miniNews->query($args);
while ($miniNews->have_posts()) : $miniNews->the_post();

Esta es una manera práctica de evitar posts iguales cuando no tenemos una separación por categorías en cierto Query.

Anuncios