J'ai une requête qui parcourt le <li>
et affiche le nombre de <li>
que j'ai. Est-il possible de faire en sorte que la boucle extrait 2 <li>
à la fois plutôt qu'un?
// 5 list items
<ul>
<?php while(has_posts()): the_post(); ?>
<li>
<div class="slide"><?php the_content(); ?></div>
</li>
<?php endwhile; ?>
</ul>
sortie
<ul>
<li><div class="slide">content 1</div></li>
<li><div class="slide">content 2</div></li>
<li><div class="slide">content 3</div></li>
<li><div class="slide">content 4</div></li>
<li><div class="slide">content 5</div></li>
</ul>
et comment j'aimerais que ça sorte ...
<ul>
<li>
<div class="slide">
content 1
content 2
</div>
</li>
etc...
</ul>
J'espère que vous comprenez ce que j'essaie de faire.
Merci!
Utilisation facile de la requête WP (apprenez à le connaître ...)
<ul>
<?php
$recentPosts = new WP_Query();
$recentPosts->query('showposts=2'); // SET AMOUNT HERE
?>
<?php while ($recentPosts->have_posts()) : $recentPosts->the_post(); ?>
<li><div class="slide"><?php the_content(); ?></div></li>
<?php endwhile; ?>
</ul>
J'espère que cela t'aides. Faites-moi savoir si vous rencontrez un problème.
EDIT 1:
* explenation - vient d’ajouter un petit compteur conditionnel
<ul>
<?php
$count = 1;
while(has_posts()): the_post();
?>
<?php if ($count == 1) {echo '<li><div class="slide">';} ?>
<?php the_content(); ?>
<?php if ($count == 3) {echo '</div></li>'; $count = 1;} else {$count++;} ?>
<?php endwhile; ?>
</ul>
EDIT 2:
* s'il vous plaît noter que j'ai changé has_post pour avoir_post (pensez que cela devrait être ainsi? votre appel)
<?php
echo '<ul>';
$count = 1;
while(have_posts()): the_post();
if ($count == 1) {$slideOpenTag = '<li><div class="slide">';} else {$slideOpenTag = '';}
if ($slideOpenTag) {echo $slideOpenTag;}
the_content();
if ($count == 3) {$slideCloseTag = '</div></li>'; $count = 1;} else {$count++; $slideCloseTag = '';}
if ($slideCloseTag) {echo $slideCloseTag;}
endwhile;
if (!$slideCloseTag) {echo '</div></li>';}
echo '<ul>';
?>
S'appuyant sur le post de Sagive SEO , cela semble également fonctionner sans utiliser de compteurs.
echo '<ul>';
while ( have_posts() ) {
echo '<li><div class="slide">';
the_post();
the_content();
// If there is 1 more post, advance current post and add its content.
if ( $wp_query->current_post + 1 < $wp_query->post_count ) {
the_post();
the_content();
}
echo '</div></li>';
}
echo '</ul>';
La fonction WordPress the_post () fait avancer l'index de publication d'objet $ wp_query, tout comme le next_post () WP_Query object méthode fait. L'ajout d'un second appel à the_post () affecte la valeur de la fonction have_posts ().
Cette boucle traite deux publications par boucle au lieu d'une, sauf si un nombre impair de publications est renvoyé, auquel cas la condition sera fausse et seule la dernière publication sera traitée lors de la dernière passe de boucle.
EDIT: Quelques maths pour 7 postes au total.
$ wp_query-> post_count = 7
$ wp_query-> current_post L'index de la publication en cours d'affichage (en commençant à 0).
Passer un. La première the_post()
initialise $wp_query->current_post
à 0. if (0 + 1 <7). La the_post()
conditionnelle incrémente $wp_query->current_post
à 1.
Passez deux. La première the_post()
incrémente $wp_query->current_post
en 2. if (2 + 1 <7). La the_post()
conditionnelle incrémente $wp_query->current_post
à 3.
Passer trois. La première the_post()
incrémente $wp_query->current_post
en 4. if (4 + 1 <7). La the_post()
conditionnelle incrémente $wp_query->current_post
à 5.
Passez quatre. La première the_post()
incrémente $wp_query->current_post
en 6. if (6 + 1 <7). Le conditionnel est faux et ne s'exécute pas.