récupérer un message wordpress avec une boucle
Je dois implémenter un curseur qui affichera 4 vignettes de publication d’une catégorie particulière dans chaque diapositive. Pour cela j’ai écrit ceci :
<ul class= "videoSlider">
<?php
$pStart = 0;
$flag = true;
while ($flag) {
query_posts('cat=14&posts_per_page=4&offset='.$pStart);
$pStart = + 4;
?>
<li>
<?php
if (have_posts ()) {
while (have_posts ()) {
the_post();
?>
<div onclick="something()">
<?php echo the_post_thumbnail(array(215, 190)); ?>
</div>
<?php
}
} else {
$flag = false;
}
?>
</li>
<?php
wp_reset_query();
} ?>
La structure dont j’ai besoin pour le curseur jquery ressemble à ceci :
<ui>
<li>
<div>
thumb 1
</div>
<div>
thumb 2
</div>
<div>
thumb 3
</div>
<div>
thumb 4
</div>
</li>
<li>
<div>
thumb 5
</div>
<div>
thumb 6
</div>
<div>
thumb 7
</div>
<div>
thumb 8
</div>
</li>
</ul>
Mais le code ne fonctionne pas pour une raison quelconque ! On dirait qu’après avoir généré quelques listes, l’exécution du code ne s’arrête pas et le navigateur se bloque. Ai-je mal utilisé la fonction : ‘ query_posts('cat=14&posts_per_page=4&offset='.$pStart)
‘ ? Comment dois-je réellement l’implémenter ?
Solution n°1 trouvée
Si vous avez beaucoup de publications, cette while
boucle externe continuera jusqu’à ce qu’elle soit interrogée sur chaque publication, 2 à la fois !
Il me semble que vous vous compliquez les choses, alors voici ce que je ferais à la place ;
global $wp_query;
query_posts('cat=14');
if ( have_posts() ):
$last_post = $wp_query->post_count - 1; // index for the last post
$counter = 0;
echo '<ul class= "videoSlider">';
while ( have_posts() ):
the_post();
if ($counter === 0)
echo '<li>';
echo '<div onclick="something()">';
the_post_thumbnail(array(215, 190));
echo '</div>';
if ($counter === 3 || $last_post == $wp_query->current_post) {
$counter = 0;
echo '</li>'; // close the tag every 4th item, or if we're at the end of the loop
} else {
$counter++;
}
endwhile;
echo '</ul>';
endif;
0 commentaire