Чтобы узнать, входят ли обе группы в ваш массив терминов, вам придется просмотреть их все и проверить их имя. Если они совпадают, сохраните их в другом массиве. Каждую итерацию вы подсчитываете массив, чтобы проверить, присутствуют ли обе группы. Затем вы можете распечатать HTML-код и разорвать цикл.
<div class="sc-age-group">
<?php $agegroup = wp_get_post_terms(get_the_ID(), 'camper_grade') ?>
<?php $groups = []; ?>
<?php foreach ($agegroup as $group): ?>
<?php if ($group->name === "1st Grade" || $group->name === "2nd Grade"): ?>
<?php $groups[] = $group; ?>
<?php if (count($groups) === 2): ?>
<div class="sc-age-group_1-2">Grades 1 - 2</div>
<?php break; ?>
<?php endif; ?>
<?php endif; ?>
<?php endforeach; ?>
</div>
Чтобы снять обеспокоенность @ disinfor по поводу возможности использования двух терминов с одним и тем же именем (маловероятно, но наверняка возможно), я принял второе решение. Сначала он будет перебирать все термины, а после этого проверять, присутствуют ли оба значения 1st Grade
и 2nd Grade
.
<?php $agegroup = wp_get_post_terms(get_the_ID(), 'camper_grade') ?>
<?php $groupNames = []; ?>
<?php foreach ($agegroup as $group): ?>
<?php $groupNames[] = $group->name; ?>
<?php endforeach; ?>
<div class="sc-age-group">
<?php if (in_array('1st Grade', $groupNames) && in_array('2nd Grade', $groupNames)): ?>
<div class="sc-age-group_1-2">Grades 1 - 2</div>
<?php endif; ?>
</div>
Еще одно добавление: я предлагаю вам использовать slug
термина вместо name
. slug
должен быть уникальным для каждого термина, в отличие от name
.
Учитывая, что слаг для 1st Grade
равен 1st-grade
, а слаг для 2nd Grade
равен 2nd-grade
:
<?php $agegroup = wp_get_post_terms(get_the_ID(), 'camper_grade') ?>
<?php $groupSlugs = []; ?>
<?php foreach ($agegroup as $group): ?>
<?php $groupSlugs[] = $group->slug; ?>
<?php endforeach; ?>
<div class="sc-age-group">
<?php if (in_array('1st-grade', $groupSlugs) && in_array('2nd-grade', $groupSlugs) && count($groupSlugs) < 3): ?>
<div class="sc-age-group_1-2">Grades 1 - 2</div>
<?php endif; ?>
</div>