Ich möchte dynamisch die folgende html erreichen:Wie können verschiedene Arrays eingestellt werden, die unterschiedliche Wertebereiche betreffen?
Zeitraum AD:
<ul>
<li>1200</li>
<li>1300
<ul>
<li>1301</li>
</ul>
<li>
</ul>
Zeitraum BC:
<ul>
<li>-200</li>
<li>-450
<ul>
<li>-451</li>
</ul>
</li>
</ul>
Im folgenden ich ein Array festgelegt haben, so Das kann ich, indem ich einige benutzerdefinierte Felder verwende, meine Daten in das Array schieben und dann den ganzen Code in 100 Jahren berechnen lassen, um es können zu können Jahre wie 1301
als verschachtelte ul unter 1300
zu platzieren.
<ul>
<?php
$yearsArray = [];
$centuryHash = [];
query_posts(array(
'post_type' => 'post',
'posts_per_page' => -1
));
while (have_posts()) : the_post();
array_push($yearsArray, get_field("year"));
if (($wp_query->current_post +1) == ($wp_query->post_count)) {
$yearsArray = array_unique($yearsArray);
sort($yearsArray);
}
endwhile;
foreach ($yearsArray as $year) {
$currentCentury = floor($year/100)*100;
if(!$centuryHash[$currentCentury]){
$centuryHash[$currentCentury] = [];
}
if($currentCentury != $year){
$centuryHash[$currentCentury][] = $year;
}
}
foreach ($centuryHash as $century => $centuryYears) { ?>
<li class="dropdown">
<?php if($centuryYears){ ?>
<a class="btn btn-default" href="#" class="dropdown-toggle" data-date="<?php echo $century; ?>" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">
<?php echo $century; ?>
<span class='caret'></span>
</a>
<ul class='dropdown-menu'>
<?php foreach ($centuryYears as $year) { ?>
<li>
<a class="btn btn-default" data-date="<?php echo $year; ?>" href="#">
<?php echo $year; ?>
</a>
</li>
<?php }
echo "</ul>";
} else { ?>
<a class="btn btn-default" data-date="<?php echo $century; ?>" href="#">
<?php echo $century; ?>
</a>
<?php } ?>
</li>
<?php }
?>
</ul>
Das Problem, das ich nicht herausfinden kann, ist, wie ich wie (verbal Code) sagen kann:
Wenn der Wert im Bereich von -450 bis 2 dann in diesen Array geht sonst geht in diesem Array statt
Von meinem Ende ich in dem cms einstellen könnte (Menschen werden in der Lage sein, Inhalte mit Daten einfügen) einige Flags, so dass ich wie (verbal Code) einfache Bedingungen tun kann:
"Ist dieses Datum von a oder b? dann dies oder jenes tun“
Aber das schafft ein Problem, weil ich konnte eine Zeit-Flag und das falsche Datum in der falschen Zeit setzen.
Deshalb ist die letzte Lösung, die ich dachte, ist zu setze einen Bereich von Zeitabschnitten und begrenze einige Felder, indem ich verschiedene erzeuge, wo ich die Werte abhängig von ihren Werten dynamisch drücken könnte
Dies könnte ein Start sein vielleicht (example from docs)? Aber wie kann ich einen if
zu steuern was geht dort hin oder nicht?
foreach (range(0, 12) as $number) {
echo $number;
}
Danke, das macht Sinn und es ist eigentlich ganz einfach, vielleicht war ich nur mit dem ganzen obigen Code überlastet. –