Obtener los hijos de la categoría principal

13

Estoy intentando que todas las categorías de niños se muestren 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'); ?> /*This should be the children of the parent category */
    </div>
    </dd>
<?php } ?>

Cualquier ayuda sería genial

    
pregunta Chris Da Sie 29.11.2012 - 16:32

2 respuestas

16

No puede simplemente pasar la cadena "padre" a get_categories . Tienes que pasar la identificación del padre.

$categories=get_categories(
    array( 'parent' => $cat->cat_ID )
);

Observe que hay dos parámetros similares pero no iguales para "obtener el hijo" que puede 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. Ahí   No hay valor predeterminado para este parámetro. Si se utiliza el parámetro, el   El parámetro hide_empty se establece en falso.

     

padre       (entero) Muestra solo las categorías que son descendientes directos (es decir, solo para niños) de la categoría identificada por su ID. Esto hace   NO funciona como el parámetro 'child_of'. No hay valor predeterminado para esto.   parámetro. [En 2.8.4]

Ahora necesitas pasar el $categories . No puedes hacer eco de una matriz.

foreach ($categories as $c) {
    var_dump($c);
    // what you really want instead of var_dump is something to
    // to create markup-- list items maybe, For example...
    echo '<li>'.$c->cat_name.'</li>';
}
    
respondido por el s_ha_dum 29.11.2012 - 17:01
2

Use el código a continuación en su archivo archive.php. Este código te ayudará:

<?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>';
        }
    }
?>
    
respondido por el Violla Queue 25.04.2018 - 09:18

Lea otras preguntas en las etiquetas