我想动态实现以下html:
时间段AD:
<ul>
<li>1200</li>
<li>1300
<ul>
<li>1301</li>
</ul>
<li>
</ul>
时间周期BC:
<ul>
<li>-200</li>
<li>-450
<ul>
<li>-451</li>
</ul>
</li>
</ul>
在下面,我设置了一个数组,这样我就可以通过使用一些自定义字段,将我的日期推入数组,然后告诉整个代码以100年为单位进行计算,以便能够将像1301
这样的年份作为在1300
下嵌套的ul。
<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>
我想不出的问题是我如何说like(口头代码):
如果值在-450到2的范围内,那么进入这个数组,否则进入那个数组
从我开始,我可以在cms(人们可以插入带有日期的内容)中设置一些标志,以便我可以执行简单的条件,如(口头代码):
“这是a日期还是b日期?然后做这个或那个”
但这会产生一个问题,因为我可能会标记一段时间,并将错误的日期放在错误的时间段。
因此,我想到的最后一个解决方案是设置一系列时间段,并通过创建不同的数组来分隔一些数组,在这些数组中,我可以根据值动态推送值。
这可能是一个开始(文档中的例子)?但是我怎么能设置一个if
来控制什么去那里或者不去那里?
foreach (range(0, 12) as $number) {
echo $number;
}
这是你问题的简单答案。
如果值在-450到2的范围内,那么进入这个数组,否则进入那个数组
if ($value >= -450 && $value <= 2) {
// do this
} else {
// do that
}
希望,这能回答您的问题(不幸的是,大量的代码不适用于这个问题)。