Ciao a tutti,
sono anche io "in palla" per un problema simile a quello indicato qui sopra. Vi spiego nel dettaglio, sperando che possiate aiutarmi in qualche modo...
Devo fare un sito tipo catalogo prodotti - no-ecommerce, e il cliente ha espressamente richiesto di utilizzare WP. Ottimo.
Visto che vuole anche una parte di news/blog, abbiamo deciso di strutturare in questo modo il tutto: gli articoli sono le news, mentre le pagine rappresenteranno il contenuto "corporate" ed il catalogo prodotti del sito. Ho creato una gerarchia di pagine che mi semplifica il lavoro.
E fino a qui, tutto bene. Almeno a livello logico... sbaglio?
Il problema subentra quando in Homepage decido di mostrare gli ultimi articoli inseriti in una sidebar, e al centro della pagina, tutte le linee di prodotto (quindi pagine figlie di Collezioni). Che cosa succede?
Il loop mi genera dei doppioni - il primo e l'ultimo risultato vengono inspiegabilmente duplicati!
Le ho provate tutte, dal "$do_not_duplicate", fino al degub a mano, stampandomi gli ID delle pagine generate dal loop. Risultato? Gli elementi duplicati non presentano ID!!!!!!!! O perlomeno non lo stampa.
Come posso fare?
Vi posto un po' di codice. Spero possiate aiutarmi.
Grazie ragazzi
<div id="slider-wrapper">
<div id="slider">
<ul>
<?php
//loop per trovare le collezioni
$args1 = array(
'post_type'=>'page', //tipo pagine
'numberposts' => -1, //non limitato
'post_status' => 'publish',
'post_parent' => 36,
'order' => ASC,
'orderby' => menu_order
);
$ids = array();
$collezioni = new WP_Query($args1);
//se collezioni ha contenuti e per tutti i contenuti di collezioni
if( $collezioni->have_posts() ) {
while ($collezioni->have_posts()) : $collezioni->the_post();
//loop per trovare le linee attive di prodotto nelle collezioni
$args2 = array(
'post_type'=>'page', //tipo pagine
'numberposts' => -1, //non limitato
'post_status' => 'publish',
'post_parent' => $post->ID,
'order' => ASC,
'orderby' => menu_order
);
$linee = null; //pulisco dai precedenti risultati
$linee = new WP_Query($args2);
//se linee ha contenuti e per tutti i contenuti di linee
if($linee->have_posts()) {
while ($linee->have_posts()) : $linee->the_post();
$pippo = $post->ID;
if(in_array($pippo, $ids)) { //se non è presente nell'array procedo
}else{
$thumbnail = get_post_meta($post->ID, 'Thumbnail', true);
?>
<li>
<div class="infobox">
<a href="<?php the_permalink() ?>" title="<?php the_title(); ?>">
<?php if($thumbnail !== '') { ?>
<img class="portfolio-image" src="<?php bloginfo('stylesheet_directory'); ?>/timthumb.php?src=<?php echo $thumbnail; ?>&h=400&w=300&zc=1" alt="<?php the_title(); ?>" />
<?php } else {?>
<img class="post-image" src="<?php bloginfo('template_directory'); ?>/images/no-image.jpg" alt="<?php the_title(); ?>" />
<?php } ?>
</a>
<a href="<?php the_permalink() ?>" title="<?php the_title(); ?>">
<span class="more">
<h2><?php the_title2();/*('', '..', true, '15');*/ ?></h2>
<p>
<?php if (function_exists('the_content_limit')) {
the_content_limit(145, "");
} else {
echo 'You have not uploaded and acivated the limit posts plugin. This is required.';
} ?>
</p>
</span>
</a>
</div>
</li>
<?php
$ids[] = $post->ID; //aggiorno l'array con dentro gli ID dei post inseriti
}
endwhile;
wp_reset_query(); // Restore global post data stomped by the_post().
}
endwhile;
wp_reset_query(); // Restore global post data stomped by the_post().
}
?>
</ul>
</div>
</div>