Есть таксономия категории
В ней структура
Категория 1 - Подкатегория 1
Категория 1 - Подкатегория 2
Я делаю select таким образом:
<?php
$categories = get_terms(
'company_category',
array( 'hide_empty' => false, 'parent' => 0 )
); ?>
<select name="catID" id="cat">
<?php
foreach ($categories as $category) {
$catID = $category->term_id;
$catName = $category->name;
?>
<option value="<?= $catID; ?>"><?= $catName; ?></option>
<?php } ?>
</select>
Получаю выпадающий список с категориями первого уровня
Но хочу получить второй выпадающий список который зависит от первого
То есть если выбрать в первом выпадающем списке Категория 1
То во втором выпадающем списке можно выбрать Под-категорию которая принадлежит "Категории 1"
В цикле, где перебираются родительские категории нужно добавить получение подкатегорий этой категории
foreach ($categories as $key => $category) {
$categories[$key] = get_terms(
'company_category',
['hide_empty' => false, 'parent' => $category->term_id]
);
Только тогда либо дважды придется прогонять foreach (Первый - для вывода селекта с родительскими, второй - для вывода селектов с дочерними категориями). Либо переделать html для вывода не селектом, а списком через <ul>. Тогда, можно будет справится за один foreach
Сборка персонального компьютера от Artline: умный выбор для современных пользователей