it-swarm.com.de

Spezifische Schleife für 2 <div> innerhalb jedes <li>

Ich muss eine Schleife erstellen, die logischerweise wie folgt für ein Karussell beschrieben werden kann: Voraussetzungen:

  • 3 Schleifen
  • 2 Beiträge pro Schleife
  • Keine Duplikate
  • Bestellung per Post Date

Visuell:

< Start Loop #1 >
< Post #1 >
< Post #2 >
< End Loop #1 >

< Start Loop #2 >
< Post #3 >
< Post #4 >
< End Loop #2 >

< Start Loop #3 >
< Post #5 >
< Post #6 >
< End Loop #3 >

Im Idealfall hätte ich gerne eine Lösung, die auf diese Weise Endlosschleifen ohne Duplikate ausführen könnte. Ich habe im Codex WP nachgesehen, aber ich konnte keine bestimmte Lösung finden, die zu meinem hier gezeigten Code passt: http://Pastebin.com/LitYb0wh

Wie kann ich die Schleife so einstellen, dass sie mit dieser Art von Struktur funktioniert?

<ul>

<li>
<div>Post 1</div>
<div>Post 2</div>
</li>

<li>
<div>Post 3</div>
<div>Post 4</div>
</li>

<li>
<div>Post 5</div>
<div>Post 6</div>
</li>

</ul>
1
user31940

ich benutze diesen Code in meinem Portfolio http://pocketapps.co/

enter image description here

<?php $args = array(
                                    //your argument code
                                );
            query_posts($args);?>

            <ul>
                 <?php  
                 $ls=0;
                    while ( have_posts() ) : the_post(); 
            ?>
                    <?php if($ls%2==0): echo '</li><li>'; endif; ?>
                    <div class="app">
                            //your code here

                    </div>
             <?php 
                $ls++;
                endwhile;
                wp_reset_query();
             ?>
            </ul>
1
ravi patel

So passen Sie Ihr <ul>-Muster genau an:

$my_query = new WP_Query();
$my_query->query($args);
$skip = 2;
echo '<ul>';
while ($my_query->have_posts()) {
  $my_query->the_post();
  echo '<li>'.$post->post_title.'</li>';
  if ( ( ($my_query->current_post-1) % $skip ) == 0) {
    break;
  }
}
echo '</ul>';
echo '<ul>';
while ($my_query->have_posts()) {
  $my_query->the_post();
  echo '<li>'.$post->post_title.'</li>';
  if ( ( ($my_query->current_post-1) % $skip ) == 0) {
    break;
  }
}
echo '</ul>';
echo '<ul>';
while ($my_query->have_posts()) {
  $my_query->the_post();
  echo '<li>'.$post->post_title.'</li>';
  if ( ( ($my_query->current_post-1) % $skip ) == 0) {
    break;
  }
}
echo '</ul>';

Das Folgende ist jedoch kleiner, übersichtlicher und sollte je nach Größe der Abfrage eine beliebige Anzahl von <ul>s erstellen. Ich gehe davon aus, dass Sie dies mit "Endlosschleifen auf diese Weise" meinen.

$my_query = new WP_Query();
$my_query->query($args);
$skip = 2;
while ($my_query->have_posts()) {
  if ( ( ($my_query->current_post-1) % $skip ) == 0) {
    echo '<ul>';
  }
  $my_query->the_post();
  echo '<li>'.$post->post_title.'</li>';
  if ( ( ($my_query->current_post-1) % $skip ) == 0) {
    echo '</ul>';
  }
}

Eine Option mit einem einzigen <ul>

$my_query = new WP_Query();
$my_query->query($args);
$skip = 2;
echo '<ul>';
  while ($my_query->have_posts()) {
    if ( ( ($my_query->current_post-1) % $skip ) == 0) {
      echo '<li>';
    }
    $my_query->the_post();
    echo '<div>'.$post->post_title.'</div>';
    if ( ( ($my_query->current_post-1) % $skip ) == 0) {
      echo '</li>';
    }
  }
echo '</ul>';

Der $args, den ich zum Testen verwendet habe, ist ...

$args = array(
  'post_type' => 'post',
  'post_status' => 'publish',
  'posts_per_page' => 8,
  'order' => 'ASC',
);

... aber das sollte mit jedem funktionieren, den du anbietest.

Es wird jedoch davon ausgegangen, dass Sie nicht für jede Schleife eine eigene Reihe von Posts abfragen möchten.

Offensichtlich habe ich dies nicht in Ihren vorhandenen Code eingearbeitet, aber das Muster sollte einfach anzuwenden sein.

0
s_ha_dum