Obtener las categorías hijas de la categoría padre
Estoy tratando de obtener todas las categorías hijas para mostrarlas en este bucle pero estoy teniendo problemas con el código. Esto es lo que tengo hasta ahora.
<?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'); ?> /*Esto debería ser las categorías hijas de la categoría padre */
</div>
</dd>
<?php } ?>
Cualquier ayuda sería genial

No puedes simplemente pasar la cadena "parent" a get_categories
. Debes pasar el ID del padre.
$categories=get_categories(
array( 'parent' => $cat->cat_ID )
);
Ten en cuenta que hay dos parámetros "obtener hijos" similares pero no iguales que puedes usar.
child_of (entero) Muestra todas las categorías que son descendientes (es decir, hijos y nietos) de la categoría identificada por su ID. No hay un valor predeterminado para este parámetro. Si se usa el parámetro, el parámetro hide_empty se establece en false.
parent (entero) Muestra solo categorías que son descendientes directos (es decir, solo hijos) de la categoría identificada por su ID. Esto NO funciona como el parámetro 'child_of'. No hay un valor predeterminado para este parámetro. [En la versión 2.8.4]
Ahora necesitas iterar sobre $categories
. No puedes simplemente imprimir un array.
foreach ($categories as $c) {
var_dump($c);
// lo que realmente quieres en lugar de var_dump es algo para
// crear marcado, tal vez elementos de lista. Por ejemplo...
echo '<li>'.$c->cat_name.'</li>';
}

Desafortunadamente, eso solo me está dando una salida de Array. No se están extrayendo valores.

'Array' es lo que sucede cuando intentas hacer echo de un array. Necesitas iterar sobre el array y hacer echo de los elementos individuales.

Podrías querer añadir 'hide_empty' => false. Para mostrar también las categorías vacías.

opcionalmente, puedes obtener el ID de la categoría así ->$categories = get_categories( array( 'parent' => get_cat_ID( 'Tu Nombre de Categoría' ) ) );
... siempre y cuando el nombre de la categoría no cambie

Utiliza el siguiente código en tu archivo archive.php. Este código te ayudará:
$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>';
}
}

Si no hay valores en el array, puedes probar el siguiente enfoque:
// Obtener las últimas categorías de productos hijos
$last_categories = get_categories(
array(
'taxonomy' => 'product_cat', // Taxonomía para categorías de productos
'parent' => $sub_category->cat_ID // ID de la categoría padre
)
);

Para obtener categorías hijas puedes usar el siguiente código.
$category = get_queried_object(); // Esto es para obtener la categoría padre en el archivo o cualquier lugar donde se llame el objeto de categoría.
$categories = get_categories(
array( 'parent' => $category->term_id,
'hide_empty' => false )
);
Nota: He usado 'hide_empty' => false para mostrar categorías que no tengan ninguna publicación asociada. Luego usa el array $categories para hacer un bucle y crear tu marcado.
