我使用一个foreach循环来查看与我的自定义post类型关联的自定义分类法。我的问题是,我得到了多个按钮显示的帖子,有超过一个税收期限选择。
我想要做的是循环搜索一个或多个“年龄/年级”,然后用正确的文本和链接显示一个按钮。然而,我得到一个按钮,为每个年级选定的课程(例如,一个3-6级课程有四个按钮:每个适用的等级一个)。
有什么办法防止重复吗?
以下是我的当前代码:
<?php
$agegroup = wp_get_post_terms(get_the_ID(), 'camper_grade');
if ($agegroup) {
foreach ($agegroup as $group) {
if ($group->slug == 'age-2' || 'age-3' || 'age-4') { ?>
<a href="/preschool">
<div class="blue-btn">
More Preschool Camps
</div>
</a> <?php ;
}
elseif ($group->slug == '1st-grade' || '2nd-grade' || '3rd-grade' || '4th-grade' || '5th-
grade' || '6th-grade') { ?>
<a href="/grades-k-6">
<div class="blue-btn">
More Grade K-6 Camps
</div>
</a> <?php ;
}
elseif ($group->slug == '7th-grade' || '8th-grade' || '9th-grade' || '10th-grade' || '11th-
grade' || '12th-grade' ) { ?>
<a href="/teen">
<div class="blue-btn">
More Teen Adventures
</div>
</a> <?php ;
}
}
}
?>发布于 2019-12-24 02:43:18
找到时使用单独的foreach循环和break。
您的||也是not working how you want it to。您应该使用in_array,它正确地将相同的值与许多其他值进行比较:
<?php
$agegroup = wp_get_post_terms(get_the_ID(), 'camper_grade');
if ($agegroup) {
foreach ($agegroup as $group) {
if (in_array($group->slug, ['age-2', 'age-3', 'age-4'])) { ?>
<a href="/preschool">
<div class="blue-btn">
More Preschool Camps
</div>
</a> <?php ;
break;
}
}
foreach ($agegroup as $group) {
if (in_array($group->slug, ['1st-grade', '2nd-grade', '3rd-grade', '4th-grade', '5th-grade', '6th-grade'])) { ?>
<a href="/grades-k-6">
<div class="blue-btn">
More Grade K-6 Camps
</div>
</a> <?php ;
break;
}
}
foreach ($agegroup as $group) {
if (in_array($group->slug, ['7th-grade', '8th-grade', '9th-grade', '10th-grade', '11th-grade', '12th-grade'])) { ?>
<a href="/teen">
<div class="blue-btn">
More Teen Adventures
</div>
</a> <?php ;
break;
}
}
}
?>发布于 2019-12-24 02:38:00
您需要添加一个标志来指示该组是否已经显示了该按钮,如果没有,则只输出该按钮。请注意,您的逻辑条件不正确,需要单独比较slug和每个值(或者更好地使用in_array)。例如:
if ($agegroup) {
$preschool = $grades_k_6 = $teen = false;
foreach ($agegroup as $group) {
if (in_array($group->slug, array('age-2', 'age-3', 'age-4')) && !$preschool) { ?>
<a href="/preschool">
<div class="blue-btn">
More Preschool Camps
</div>
</a> <?php ;
$preschool = true;
}
elseif (in_array($group->slug, array('1st-grade', '2nd-grade', '3rd-grade', '4th-grade', '5th-grade', '6th-grade')) && !$grades_k_6) { ?>
<a href="/grades-k-6">
<div class="blue-btn">
More Grade K-6 Camps
</div>
</a> <?php ;
$grades_k_6 = true;
}
elseif (in_array($group->slug, array('7th-grade', '8th-grade', '9th-grade', '10th-grade', '11th-grade', '12th-grade')) && !$teen) { ?>
<a href="/teen">
<div class="blue-btn">
More Teen Adventures
</div>
</a> <?php ;
$teen = true;
}
}
}https://stackoverflow.com/questions/59463177
复制相似问题