Récupère les enfants de la catégorie parent
4 réponses
- votes
-
- 2012-11-29
Vousne pouvezpas simplementtransmettre la chaîne "parent" à
get_categories
. Vous deveztransmettre l'ID duparent.$categories=get_categories( array( 'parent' => $cat->cat_ID ) );
Notez qu'ilexiste deux paramètres "get child" similairesmaisnon égaux que vouspouvez utiliser .
enfant_de (entier) Affichetoutes les catégories qui sont les descendants (c'est-à-dire lesenfantset petits-enfants) de la catégorieidentifiéepar son ID. Là n'estpas une valeurpar défautpour ceparamètre. Si leparamètreest utilisé,le Leparamètre hide_emptyest défini surfalse.
parent (entier) Affiche uniquement les catégories qui sont des descendants directs (c'est-à-dire desenfants uniquement) de la catégorieidentifiéepar son ID. Celafait NEfonctionne PAS comme leparamètre 'child_of'. Iln'y apas de valeurpar défautpour cela paramètre. [En 2.8.4]
Vous devezmaintenantparcourir les
$categories
. Vousne pouvezpas simplementfaire écho à untableau.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>'; }
-
Malheureusement,celame donnejuste une sortie d'Array.Aucune valeurn'esttirée.Unfortunately, that is just giving me an output of Array. No values are being pulled in.
- 0
- 2012-11-29
- Chris Da Sie
-
«Array»est ce qui seproduit lorsque vousessayez defaire écho à untableau.Vous devezfaire uneboucle sur letableauet faire écho aux élémentsindividuels.'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
-
Vous voudrezpeut-être ajouter 'hide_empty'=>false.Pour afficher également les catégories vides.You might want to add 'hide_empty' => false. To also show empty categories.
- 2
- 2018-06-18
- Floris
-
- 2018-04-25
Utilisez le code ci-dessous dans votrefichier archive.php. Ce code vous aidera:
<?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>'; } } ?>
-
Veuillez ** [modifier] votre réponse **,et ajouter uneexplication: **pourquoi ** celapourrait-il résoudre leproblème?Please **[edit] your answer**, and add an explanation: **why** could that solve the problem?
- 0
- 2018-04-25
- fuxia
-
- 2019-12-22
S'iln'y apas de valeurs dans letableau,vouspouvezessayer l'approche suivante:
$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
Pour obtenir des catégoriesenfants,vouspouvez utiliser le code suivant.
$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 ) );
Remarque: - J'ai utilisé 'hide_empty'=>falsepour afficher les catégories sans aucunmessageen dessous. Ensuite,utilisez letableau $ categoriespourboucleret créer votrebalisage.
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.
J'essaie defaire affichertoutes les catégoriesenfants dans cetteboucle,maisj'ai dumal avec le code.C'est ce quej'aijusqu'àprésent.
N'importe quelle aide seraitformidable