Поскольку ваша функция categori
не принимает идентификатор родительской категории в качестве параметра, вы можете легко отображать родительские и дочерние категории.
Просто немного измените свой HTML-шаблон.Сначала получите основные категории.Это должны быть все категории с идентификатором родительской категории 0.
<?php $parentCategories = category(); ?>
Затем выполните итерацию по всем родительским категориям и извлеките дочерние категории по идентификатору родительской категории.
<ul>
<?php foreach ($parentCategories as $parentCategory) : ?>
<li>
<a href="cat"><?= $parentCategory['name'] ?></a>
<ul>
<?php
$children = category($parentCategory['id']);
foreach ($children as $child) :
?>
<li><?= $child['name'] ?></li>
<?php endforeach; ?>
</ul>
</li>
<?php endforeach; ?>
</ul>
Как видитеЕсть две foreach
итерации.Первый перебирает родительские категории.Второй в первом цикле foreach перебирает дочерние категории, которые вы выбираете по идентификатору родительской категории.