Also arbeite ich an einem HTML-Karussell mit Twitter Bootstrap, Wordpress und ACF Fields.Ändern Sie die Spaltengröße basierend auf der Anzahl der Elemente
Dieses Karussell zeigt 2 Elemente pro Zeile. Jedes dieser Elemente hat eine Klasse von "col-md-6". So nach 2 zeigt Elemente pro Zeile beträgt die Gesamt 2 Spalten von "col-md-6" (was perfekt ist, da dies die von Bootstrap benötigt 12 Spalten ergänzt):
Hier mein Code:
<?php if (have_rows('columns_carousel_slide')) {
$count = 0; ?>
<div class="item active"><div class="row">
<?php while(have_rows('columns_carousel_slide')) {
the_row();
if ($count > 0 && (($count % 2) == 0)) {
?>
</div> <!--.item -->
</div> <!--.row -->
<div class="item">
<div class="row">
<?php } ?>
<div class="col-md-6">
<h2><?php the_sub_field('columns_carousel_slide_title'); ?></h2>
</div> <!--.col-md-6 -->
<?php $count++; } ?>
</div> <!--.item -->
</div> <!--.row -->
<?php } ?>
Ich würde jedoch gerne wissen, ob es eine Möglichkeit gibt zu erkennen, ob es 1 Stück pro Zeile gibt und wenn ja, dann zeigen Sie eine "Col-MD-12" statt einer "Col-MD-6", um zu füllen der verbleibende Platz von 2 Gegenständen.
Alle Ideen sind willkommen.
Danke!
-
Edit: Wie Jakub vorgeschlagen, ich habe meinen Code auf die folgende Aktualisierung:
<?php if (have_rows('columns_carousel_slide')) {
$count = 0; ?>
<div class="item active"><div class="row">
<?php
$multiplier = 1; //that could actually go before the while
if (count(get_field('columns_carousel_slide'))%2 === 1 &&
$count === count(get_field('columns_carousel_slide'))-1) {
$multiplier = 2;
} ?>
<?php while(have_rows('columns_carousel_slide')) {
the_row();
if ($count > 0 && (($count % 2) == 0)) {
?>
</div> <!--.item -->
</div> <!--.row -->
<div class="item">
<div class="row">
<?php } ?>
<div class="col-md-<?php echo (6*$multiplier);?>">
<h2><?php the_sub_field('columns_carousel_slide_title'); ?></h2>
</div> <!--.col-md-6 -->
<?php $count++; } ?>
</div> <!--.item -->
</div> <!--.row -->
<?php } ?>
Aber ich denke, ich habe muss etwas verpasst haben, weil ich total bin immer von "col-md-12" für alle Zeilen.
Hey Johann, der $ Multiplikator = 1; kann bleiben, wo es ist, aber der Rest (wenn Block) sollte in die While-Schleife gehen. Und nach den Dokumenten: https://www.advancedcustomfields.com/resources/repeater/ sollte es jetzt wirklich funktionieren. Sehen Sie sich den Link "Basic Loop (PHP foreach loop)" an. –