Получить дочерние категории родительской категории
Я пытаюсь получить все дочерние категории для отображения в этом цикле, но у меня возникли трудности с кодом. Вот что у меня есть на данный момент.
<?php $args=array('orderby' => 'name', 'order' => 'ASC');
$categories=get_categories($args);
foreach ($categories as $cat) { ?>
<dt><a href="#" class="customer-acquisitiontop" id="<?php echo $cat->slug; ?>" data-filter=".<?php echo $cat->slug; ?>"><h2><?= $cat->cat_name; ?></h2></a></dt>
<dd><div class="services">
<?= $categories=get_categories('parent'); ?> /*Здесь должны быть дочерние категории родительской категории */
</div>
</dd>
<?php } ?>
Буду благодарен за любую помощь

Нельзя просто передать строку "parent" в функцию get_categories
. Необходимо передать ID родительской категории.
$categories=get_categories(
array( 'parent' => $cat->cat_ID )
);
Обратите внимание, что существует два похожих, но не идентичных параметра для получения дочерних категорий, которые можно использовать.
child_of (integer) Отображает все категории, которые являются потомками (т.е. дочерними и внучатыми) категории, указанной по её ID. Нет значения по умолчанию для этого параметра. Если параметр используется, параметр hide_empty устанавливается в false.
parent (integer) Отображает только категории, которые являются прямыми потомками (т.е. только дочерними) категории, указанной по её ID. Это НЕ работает так же, как параметр 'child_of'. Нет значения по умолчанию для этого параметра. [В версии 2.8.4]
Теперь нужно выполнить цикл по массиву $categories
. Нельзя просто вывести массив.
foreach ($categories as $c) {
var_dump($c);
// вместо var_dump лучше использовать что-то,
// что создаст разметку — например, элементы списка. Например...
echo '<li>'.$c->cat_name.'</li>';
}

К сожалению, это просто выводит мне Array. Никакие значения не извлекаются.

'Array' появляется, когда вы пытаетесь вывести массив через echo. Вам нужно перебрать массив в цикле и вывести отдельные элементы.

Возможно, стоит добавить 'hide_empty' => false, чтобы показывать и пустые категории.

опционально, вы можете получить ID категории таким образом ->$categories = get_categories( array( 'parent' => get_cat_ID( 'Your Category Name' ) ) );
... пока название категории не изменится

Используйте приведенный ниже код в вашем файле archive.php. Этот код поможет вам:
$term = get_queried_object();
$children = get_terms( $term->taxonomy, array(
'parent' => $term->term_id,
'hide_empty' => false
));
if ( $children ) {
foreach( $children as $subcat ) {
echo '<li><a href="' . esc_url(get_term_link($subcat, $subcat->taxonomy)) . '">' . $subcat->name . '</a></li>';
}
}

Для получения дочерних категорий можно использовать следующий код.
$category = get_queried_object(); // получаем родительскую категорию в архиве или в любом месте, где вызывается объект категории
$categories = get_categories(
array( 'parent' => $category->term_id,
'hide_empty' => false )
);
Примечание: Я использовал параметр 'hide_empty' => false, чтобы показывать категории без записей.
Затем используйте массив $categories для цикла и создания нужной разметки.
