Obtenga los hijos de la categoría principal
4 respuestas
- votos
-
- 2012-11-29
Nopuede simplementepasar la cadena "parent" a
get_categories
. Tienes quepasar laidentificación delpadre.$categories=get_categories( array( 'parent' => $cat->cat_ID ) );
Tengaen cuenta que hay dos parámetros "get child" similaresperonoiguales quepuede utilizar .
hijo_de (entero) Muestratodas las categorías que son descendientes (es decir,hijos ynietos) de la categoríaidentificadapor su ID. Allí noes un valorpredeterminadoparaesteparámetro. Si se utilizaelparámetro,el Elparámetro hide_empty seestableceen falso.
padre (entero) Muestra solo categorías que son descendientes directos (es decir,solo hijos) de la categoríaidentificadapor su ID. Esto hace NOfunciona comoelparámetro 'child_of'. No hayningún valorpredeterminadoparaesto parámetro. [En 2.8.4]
Ahoranecesita recorrer las
$categories
. Nopuedes simplemente repetir unamatriz.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>'; }
You can't just pass the string "parent" to
get_categories
. You have to pass the ID of the parent.$categories=get_categories( array( 'parent' => $cat->cat_ID ) );
Notice that there are two similar but not equal "get child" parameters that you can use.
child_of (integer) Display all categories that are descendants (i.e. children & grandchildren) of the category identified by its ID. There is no default for this parameter. If the parameter is used, the hide_empty parameter is set to false.
parent (integer) Display only categories that are direct descendants (i.e. children only) of the category identified by its ID. This does NOT work like the 'child_of' parameter. There is no default for this parameter. [In 2.8.4]
Now you need to loop over the
$categories
. You can't just echo an array.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>'; }
-
Desafortunadamente,eso solome está dando una salida de Array.No seestánintroduciendo valores.Unfortunately, that is just giving me an output of Array. No values are being pulled in.
- 0
- 2012-11-29
- Chris Da Sie
-
'Matriz'es lo que sucede cuandointenta hacereco de unamatriz.Necesita recorrer lamatriz y hacereco de loselementosindividuales.'Array' is what happens when you try to echo an array. You need to loop over the array and echo the individual elements.
- 0
- 2012-11-29
- s_ha_dum
-
Esposible que desee agregar 'hide_empty'=>false.Paramostrartambién categorías vacías.You might want to add 'hide_empty' => false. To also show empty categories.
- 2
- 2018-06-18
- Floris
-
- 2018-04-25
Utiliceel siguiente códigoen su archivo archive.php. Este código le ayudará a:
<?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>'; } } ?>
Use the code below in your archive.php file. This code will help you:
<?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>'; } } ?>
-
** [edite] su respuesta ** y agregue unaexplicación: ** ¿por qué **estopodría resolverelproblema?Please **[edit] your answer**, and add an explanation: **why** could that solve the problem?
- 0
- 2018-04-25
- fuxia
-
- 2019-12-22
Sino hay valoresen lamatriz,puedeprobarel siguienteenfoque:
$last_categories = get_categories( array( 'taxonomy' => 'product_cat', 'parent' => $sub_category->cat_ID ) );
If there are no values in the array you can try the following approach:
$last_categories = get_categories( array( 'taxonomy' => 'product_cat', 'parent' => $sub_category->cat_ID ) );
-
- 2020-03-02
Para obtener categorías secundarias,puede utilizarel siguiente código.
$category = get_queried_object(); // this is for getting the parent category on archive or any place the category object is called. $categories=get_categories( array( 'parent' => $category->term_id, 'hide_empty' => false ) );
Aviso: - He usado 'hide_empty'=>falseparamostrar categorías sinpublicaciones debajo. Luego use lamatriz de $ categoríaspara hacer unbucle y hacer sumarcado.
To get child categories you can use following code.
$category = get_queried_object(); // this is for getting the parent category on archive or any place the category object is called. $categories=get_categories( array( 'parent' => $category->term_id, 'hide_empty' => false ) );
Notice :- I have used 'hide_empty' => false to show categories with no any posts under it. Then use the $categories array to loop and make your markup.
Estoytratando de que semuestrentodas las categorías secundariasen estebucle,perotengoproblemas conel código.Estoes lo quetengo hasta ahora.
Cualquier ayuda seríagenial