2016-04-27 16 views
1

Ich brauche diese for-Schleife in WordPress, aber ich denke, auch auf die reine PHP wird in Ordnung sein. Ich brauche meine DIV zu wechseln, habe ich so some: zu ‚sichern‘ erste Element auf der linken SeitePHP alternieren mit 'gesichert' erstes Element

// Here I getting total count of posts - return as INT, ex. 4 
$countOffers = wp_count_posts('offer')->publish; 

<?php while ($the_query->have_posts()) : $the_query->the_post(); ?> 

    <?php if ($countOffers % 2 == 0): ?> 
     // Align to left side 
     <?php get_template_part('template-parts/Offer/content', 'left'); ?> 
    <?php else: ?> 
     // Align to right side 
     <?php get_template_part('template-parts/Offer/content', 'right'); ?> 
    <?php endif ?> 

    <?php $countOffers--; ?> 
<?php endwhile; ?> 

Es funktioniert gut, aber, ich will.
Dies bedeutet, dass egal wie viele Elemente ich zurückgebe, es immer die erste auf der linken Seite sein wird.

+0

Können Sie fügen Sie einfach einen 'float: left'‘ auf diese Elemente? – WillardSolutions

Antwort

1

Verwenden Sie eine Zählervariable ($counter in diesem Beispiel). Überprüfen Sie in jeder Iteration der while Schleife, ob $counter durch 2 teilbar ist oder nicht, und richten Sie das Element entsprechend aus.

Der Code sollte so aussehen:

$countOffers = wp_count_posts('offer')->publish; 
$counter = 1; 
<?php while ($the_query->have_posts() && $counter <= $countOffers) : $the_query->the_post(); ?> 

    <?php if ($counter % 2 != 0): ?> 
     // Align to left side 
     <?php get_template_part('template-parts/Offer/content', 'left'); ?> 
    <?php else: ?> 
     // Align to right side 
     <?php get_template_part('template-parts/Offer/content', 'right'); ?> 
    <?php endif ?> 

    <?php ++$counter; ?> 
<?php endwhile; ?>