Comment afficher une liste de termes hiérarchiques?
-
-
Au cas où quelqu'un auraitbesoin d'une CHECKLIST hiérarchique (pas la questionicimais liée auxpersonnes qui créent uneinterface utilisateurpersonnaliséepour destaxonomies hiérarchiques),lameilleure réponseest d'utiliser wp_terms_checklist () avec votretaxonomiepersonnalisée.In case anyone needs a hierarchical CHECKLIST (not the question here but related for people building custom UI for hierarchical taxonomies), the best answer is to use wp_terms_checklist() with your custom taxonomy.
- 2
- 2016-02-23
- jerclarke
-
11 réponses
- votes
-
- 2011-04-13
Utilisez
wp_list_categories
avec'taxonomy' => 'taxonomy'
,ilest conçupour créer des listes de catégories hiérarchiquesmaisprendra égalementen charge l'utilisation d'unetaxonomiepersonnalisée.Exemple de codex:
Afficher lestermes dans unetaxonomiepersonnaliséeSi la liste revient àplat,ilestpossible que vous ayezjustebesoin d'unpeu de CSSpour ajouter du remplissage aux listes,afin que vouspuissiez voir leur structure hiérarchique.
Use
wp_list_categories
with the'taxonomy' => 'taxonomy'
argument, it's built for creating hierarchical category lists but will also support using a custom taxonomy..Codex Example:
Display terms in a custom taxonomyIf the list comes back looking flat, it's possible you just need a little CSS to add padding to the lists, so you can see their hierarchical structure.
-
Celapourrait-il êtreinversé?Affichez d'abord lesenfants.Could this be reversed? Display children first..
- 0
- 2016-03-06
- Arg Geo
-
- 2013-05-15
Jeme rends compte que c'est une questiontrès ancienne,mais si vous avezbesoin de construire une structure determes réelle,celapourrait être uneméthode utilepour vous:
/** * Recursively sort an array of taxonomy terms hierarchically. Child categories will be * placed under a 'children' member of their parent term. * @param Array $cats taxonomy term objects to sort * @param Array $into result array to put them in * @param integer $parentId the current parent ID to put them in */ function sort_terms_hierarchically(Array &$cats, Array &$into, $parentId = 0) { foreach ($cats as $i => $cat) { if ($cat->parent == $parentId) { $into[$cat->term_id] = $cat; unset($cats[$i]); } } foreach ($into as $topCat) { $topCat->children = array(); sort_terms_hierarchically($cats, $topCat->children, $topCat->term_id); } }
L'utilisationest la suivante:
$categories = get_terms('my_taxonomy_name', array('hide_empty' => false)); $categoryHierarchy = array(); sort_terms_hierarchically($categories, $categoryHierarchy); var_dump($categoryHierarchy);
I realize, this is a very old question, but if you have a need to build up an actual structure of terms, this might be a useful method for you:
/** * Recursively sort an array of taxonomy terms hierarchically. Child categories will be * placed under a 'children' member of their parent term. * @param Array $cats taxonomy term objects to sort * @param Array $into result array to put them in * @param integer $parentId the current parent ID to put them in */ function sort_terms_hierarchically(Array &$cats, Array &$into, $parentId = 0) { foreach ($cats as $i => $cat) { if ($cat->parent == $parentId) { $into[$cat->term_id] = $cat; unset($cats[$i]); } } foreach ($into as $topCat) { $topCat->children = array(); sort_terms_hierarchically($cats, $topCat->children, $topCat->term_id); } }
Usage is as follows:
$categories = get_terms('my_taxonomy_name', array('hide_empty' => false)); $categoryHierarchy = array(); sort_terms_hierarchically($categories, $categoryHierarchy); var_dump($categoryHierarchy);
-
C'est vraimenttrèsbien.Je changerais une chose: `$en [$ cat->term_id]=$ cat;`en `$en []=$ cat;` Avoir l'ID duterme comme clé detableauestennuyeux (vousne pouvezpas obtenirlepremier élémentfacilementen utilisant la clé 0)et inutile (vous stockez déjà l'objet `$ cat`et vouspouvez obtenir l'iden utilisant lapropriété`term_id`.This is actually really good. I would change one thing: `$into[$cat->term_id] = $cat;` into `$into[] = $cat;` Having the ID of the term as the array key is annoying (you can't get the first element easily using the 0 key) and useless (you're already storing the `$cat` object and you can get the id using the `term_id` property.
- 3
- 2017-03-07
- Nahuel
-
Si commemoi vousessayez d'appliquer cettefonction à un sous-niveau de catégories,vous devrezpasser l'ID duniveau auquel vous êtes actuellementpour que celafonctionne.Mais çamarchebien,merci @popsi.If like me you're trying to apply this function to a sub-level of categories, you will need to pass in the ID of the level you're currently at for this to work. But work nicely it does, thanks @popsi.
- 0
- 2018-08-16
- Ben Everard
-
çamarche,mercithat works, thank you
- 0
- 2019-11-12
- Luca Reghellin
-
- 2011-04-13
Jene connais aucunefonction quifasse ce que vous voulez,mais vouspouvez créer quelque chose comme ceci:
<ul> <?php $hiterms = get_terms("my_tax", array("orderby" => "slug", "parent" => 0)); ?> <?php foreach($hiterms as $key => $hiterm) : ?> <li> <?php echo $hiterm->name; ?> <?php $loterms = get_terms("my_tax", array("orderby" => "slug", "parent" => $hiterm->term_id)); ?> <?php if($loterms) : ?> <ul> <?php foreach($loterms as $key => $loterm) : ?> <li><?php echo $loterm->name; ?></li> <?php endforeach; ?> </ul> <?php endif; ?> </li> <?php endforeach; ?> </ul>
Jen'aipastesté cela,mais vouspouvez voir oùje veuxen venir. Le code ci-dessusne vous donnera que deuxniveaux
EDIT: ahh oui vouspouvez utiliser wp_list_categories ()pourfaire ce que vous voulez.
I dont know of any function that does what you want but you can build up something like this:
<ul> <?php $hiterms = get_terms("my_tax", array("orderby" => "slug", "parent" => 0)); ?> <?php foreach($hiterms as $key => $hiterm) : ?> <li> <?php echo $hiterm->name; ?> <?php $loterms = get_terms("my_tax", array("orderby" => "slug", "parent" => $hiterm->term_id)); ?> <?php if($loterms) : ?> <ul> <?php foreach($loterms as $key => $loterm) : ?> <li><?php echo $loterm->name; ?></li> <?php endforeach; ?> </ul> <?php endif; ?> </li> <?php endforeach; ?> </ul>
I haven't tested this but you can see what I'm getting at. What the above code will do is give you only two levels
EDIT: ahh yes you can use wp_list_categories() to do what you after.
-
Enfait,c'est assez utile,carj'aibesoin d'avoir des lienspersonnalisés (avec unparamètre GET) sur leterme links,ce quine semblepaspossible avec lamanière wp_list_categories () de lefaire.Actually this is quite useful, as I need to have custom links (with a GET param) on the term links, which doesn't seem possible with the wp_list_categories() way of doing it.
- 0
- 2011-04-13
- mike23
-
Oui,cetteméthode donneraplus de contrôle sur votre sortie.Mais vouspouvezfaire unpeu de rechercheet de remplacement sur la sortie de `wp_list_categories ()`pour ajouter vosparamètres GET.Oumieuxencore,créez unfiltrepour que lafonction ajoute lesbits souhaités.Neme demandezpas comment vousfaites cela carje n'aipasencorepu comprendre :(Yes this method will give more control over your output. But you could do some nice bit of find and replace on the output of `wp_list_categories()` to add in your GET parameters. Or even better build a filter for the function to add in the bits you want. Don't ask me how you do that as I've not yet been able to get my head around it :(
- 1
- 2011-04-13
- Scott
-
Je suggère d'utiliser un [guide de catégoriepersonnalisé] (http://www.google.co.uk/search?q=wordpres+custom+category+walker) avec `wp_list_categories` si vous voulez unmeilleur contrôle sur la sortie,ilrendra votre codebeaucoupplus réutilisable.I'd suggest using a [custom category walker](http://www.google.co.uk/search?q=wordpres+custom+category+walker) with `wp_list_categories` if you want greater control over the output, it'll make your code much more reusable..
- 3
- 2011-04-13
- t31os
-
-
- 2016-01-13
Le code suivantgénérera une liste déroulante avec destermes,maispeut égalementgénérertout autre élément/structureen éditant la variable $ outputTemplateet en éditant les lignes str_replace:
function get_terms_hierarchical($terms, $output = '', $parent_id = 0, $level = 0) { //Out Template $outputTemplate = '<option value="%ID%">%PADDING%%NAME%</option>'; foreach ($terms as $term) { if ($parent_id == $term->parent) { //Replacing the template variables $itemOutput = str_replace('%ID%', $term->term_id, $outputTemplate); $itemOutput = str_replace('%PADDING%', str_pad('', $level*12, ' '), $itemOutput); $itemOutput = str_replace('%NAME%', $term->name, $itemOutput); $output .= $itemOutput; $output = get_terms_hierarchical($terms, $output, $term->term_id, $level + 1); } } return $output; } $terms = get_terms('taxonomy', array('hide_empty' => false)); $output = get_terms_hierarchical($terms); echo '<select>' . $output . '</select>';
The following code will generate drop-down with terms, but also can generate any other element/structure by editing the $outputTemplate variable, and editing str_replace lines:
function get_terms_hierarchical($terms, $output = '', $parent_id = 0, $level = 0) { //Out Template $outputTemplate = '<option value="%ID%">%PADDING%%NAME%</option>'; foreach ($terms as $term) { if ($parent_id == $term->parent) { //Replacing the template variables $itemOutput = str_replace('%ID%', $term->term_id, $outputTemplate); $itemOutput = str_replace('%PADDING%', str_pad('', $level*12, ' '), $itemOutput); $itemOutput = str_replace('%NAME%', $term->name, $itemOutput); $output .= $itemOutput; $output = get_terms_hierarchical($terms, $output, $term->term_id, $level + 1); } } return $output; } $terms = get_terms('taxonomy', array('hide_empty' => false)); $output = get_terms_hierarchical($terms); echo '<select>' . $output . '</select>';
-
- 2013-02-21
Commeje cherchais lamême chosemaispour obtenir lestermes d'un article,j'aifinalement compilé ceci,et celafonctionnepourmoi.
Ce qu'ilfait:
•il obtienttous lestermes d'unnom detaxonomiepour un article spécifique.
•pour unetaxonomie hiérarchique à deuxniveaux (ex:niveau1: 'pays'et niveau2: 'villes'),il crée un h4 avec leniveau1 suivi d'une liste ul deniveau2et cepourtous les éléments deniveau1.
• si lataxonomien'estpas hiérarchique,ellene créera qu'une liste ul detous les éléments. voici le code (je l'écrispourmoi doncj'aiessayé d'être aussigénérique quepossiblemais ...):
function finishingLister($heTerm){ $myterm = $heTerm; $terms = get_the_terms($post->ID,$myterm); if($terms){ $count = count($terms); echo '<h3>'.$myterm; echo ((($count>1)&&(!endswith($myterm, 's')))?'s':"").'</h3>'; echo '<div class="'.$myterm.'Wrapper">'; foreach ($terms as $term) { if (0 == $term->parent) $parentsItems[] = $term; if ($term->parent) $childItems[] = $term; }; if(is_taxonomy_hierarchical( $heTerm )){ foreach ($parentsItems as $parentsItem){ echo '<h4>'.$parentsItem->name.'</h4>'; echo '<ul>'; foreach($childItems as $childItem){ if ($childItem->parent == $parentsItem->term_id){ echo '<li>'.$childItem->name.'</li>'; }; }; echo '</ul>'; }; }else{ echo '<ul>'; foreach($parentsItems as $parentsItem){ echo '<li>'.$parentsItem->name.'</li>'; }; echo '</ul>'; }; echo '</div>'; }; };
Doncfinalement vous appelez lafonction avec ceci (évidemment,vous remplacezma_taxonomiepar la vôtre):
finishingLister('my_taxonomy');
Jene prétendspas que c'estparfait,mais commeje l'ai dit,celafonctionnepourmoi.
As I was looking for the same but to get terms of one post, finally I compiled this, and it works for me.
What it does :
• it gets all terms of a taxonomy name for a specific post.
• for a hierachical taxonomy with two levels (ex: level1:'country' and level2:'cities'), it creates a h4 with the level1 followed by an ul list of level2 and this for all level1 items.
• if the taxonomy is not hierarchical, it will create only an ul list of all items. here is the code (I write it for me so I tried to be as generic as I can but...) :function finishingLister($heTerm){ $myterm = $heTerm; $terms = get_the_terms($post->ID,$myterm); if($terms){ $count = count($terms); echo '<h3>'.$myterm; echo ((($count>1)&&(!endswith($myterm, 's')))?'s':"").'</h3>'; echo '<div class="'.$myterm.'Wrapper">'; foreach ($terms as $term) { if (0 == $term->parent) $parentsItems[] = $term; if ($term->parent) $childItems[] = $term; }; if(is_taxonomy_hierarchical( $heTerm )){ foreach ($parentsItems as $parentsItem){ echo '<h4>'.$parentsItem->name.'</h4>'; echo '<ul>'; foreach($childItems as $childItem){ if ($childItem->parent == $parentsItem->term_id){ echo '<li>'.$childItem->name.'</li>'; }; }; echo '</ul>'; }; }else{ echo '<ul>'; foreach($parentsItems as $parentsItem){ echo '<li>'.$parentsItem->name.'</li>'; }; echo '</ul>'; }; echo '</div>'; }; };
So finally you call the function with this (obviously, you replace my_taxonomy by yours) :
finishingLister('my_taxonomy');
I don't pretend it's perfect but as I said it works for me.
-
- 2013-11-30
J'aieu ceproblèmeet aucune des réponsesicin'afonctionnépourmoi,pour une raison ou une autre.
Voicima versionmise àjouret fonctionnelle.
function locationSelector( $fieldName ) { $args = array('hide_empty' => false, 'hierarchical' => true, 'parent' => 0); $terms = get_terms("locations", $args); $html = ''; $html .= '<select name="' . $fieldName . '"' . 'class="chosen-select ' . $fieldName . '"' . '>'; foreach ( $terms as $term ) { $html .= '<option value="' . $term->term_id . '">' . $term->name . '</option>'; $args = array( 'hide_empty' => false, 'hierarchical' => true, 'parent' => $term->term_id ); $childterms = get_terms("locations", $args); foreach ( $childterms as $childterm ) { $html .= '<option value="' . $childterm->term_id . '">' . $term->name . ' > ' . $childterm->name . '</option>'; $args = array('hide_empty' => false, 'hierarchical' => true, 'parent' => $childterm->term_id); $granchildterms = get_terms("locations", $args); foreach ( $granchildterms as $granchild ) { $html .= '<option value="' . $granchild->term_id . '">' . $term->name . ' > ' . $childterm->name . ' > ' . $granchild->name . '</option>'; } } } $html .= "</select>"; return $html; }
Et utilisation:
$selector = locationSelector('locationSelectClass'); echo $selector;
I had this problem and none of the answers here worked for me, for one reason or another.
Here is my updated and working version.
function locationSelector( $fieldName ) { $args = array('hide_empty' => false, 'hierarchical' => true, 'parent' => 0); $terms = get_terms("locations", $args); $html = ''; $html .= '<select name="' . $fieldName . '"' . 'class="chosen-select ' . $fieldName . '"' . '>'; foreach ( $terms as $term ) { $html .= '<option value="' . $term->term_id . '">' . $term->name . '</option>'; $args = array( 'hide_empty' => false, 'hierarchical' => true, 'parent' => $term->term_id ); $childterms = get_terms("locations", $args); foreach ( $childterms as $childterm ) { $html .= '<option value="' . $childterm->term_id . '">' . $term->name . ' > ' . $childterm->name . '</option>'; $args = array('hide_empty' => false, 'hierarchical' => true, 'parent' => $childterm->term_id); $granchildterms = get_terms("locations", $args); foreach ( $granchildterms as $granchild ) { $html .= '<option value="' . $granchild->term_id . '">' . $term->name . ' > ' . $childterm->name . ' > ' . $granchild->name . '</option>'; } } } $html .= "</select>"; return $html; }
And usage:
$selector = locationSelector('locationSelectClass'); echo $selector;
-
- 2018-07-09
J'ai utilisé du code @popsi quifonctionnaittrèsbien etje l'ai renduplusefficaceet plusfacile à lire:
/** * Recursively sort an array of taxonomy terms hierarchically. Child categories will be * placed under a 'children' member of their parent term. * @param Array $cats taxonomy term objects to sort * @param integer $parentId the current parent ID to put them in */ function sort_terms_hierarchicaly(Array $cats, $parentId = 0) { $into = []; foreach ($cats as $i => $cat) { if ($cat->parent == $parentId) { $cat->children = sort_terms_hierarchicaly($cats, $cat->term_id); $into[$cat->term_id] = $cat; } } return $into; }
Utilisation:
$sorted_terms = sort_terms_hierarchicaly($terms);
I used @popsi code that was working really well and I made it a more efficient and easy to read:
/** * Recursively sort an array of taxonomy terms hierarchically. Child categories will be * placed under a 'children' member of their parent term. * @param Array $cats taxonomy term objects to sort * @param integer $parentId the current parent ID to put them in */ function sort_terms_hierarchicaly(Array $cats, $parentId = 0) { $into = []; foreach ($cats as $i => $cat) { if ($cat->parent == $parentId) { $cat->children = sort_terms_hierarchicaly($cats, $cat->term_id); $into[$cat->term_id] = $cat; } } return $into; }
Usage :
$sorted_terms = sort_terms_hierarchicaly($terms);
-
- 2020-05-04
Cette solutionestmoinsefficace que le code de @popsi,carellefait unenouvelle requêtepour chaqueterme,maiselleest égalementplusfacile à utiliser dans unmodèle. Si votre site Web utilise lamiseen cache,vouspouvez,commemoi,ne pas vous soucier de la légère surcharge de labase de données.
Vousn'avezpasbesoin depréparer untableau qui sera rempli récursivement determes. Vous l'appelez simplement de lamêmemanière que vous appelleriez get_terms () (lenon-forme obsolète avec seulement untableaupour un argument). Il renvoie untableau d'objets
WP_Term
avec unepropriété supplémentaire appeléechildren
.function get_terms_tree( Array $args ) { $new_args = $args; $new_args['parent'] = $new_args['parent'] ?? 0; $new_args['fields'] = 'all'; // The terms for this level $terms = get_terms( $new_args ); // The children of each term on this level foreach( $terms as &$this_term ) { $new_args['parent'] = $this_term->term_id; $this_term->children = get_terms_tree( $new_args ); } return $terms; }
L'utilisationest simple:
$terms = get_terms_tree([ 'taxonomy' => 'my-tax' ]);
This solution is less efficient than @popsi's code, since it makes a new query for every term, but it's also easier to use in a template. If your website uses caching, you may, like me, not mind the slight database overhead.
You don't need to prepare an array that'll be recursively filled with terms. You just call it the same way you would call get_terms() (the non-deprecated form with only an array for an argument). It returns an array of
WP_Term
objects with an extra property calledchildren
.function get_terms_tree( Array $args ) { $new_args = $args; $new_args['parent'] = $new_args['parent'] ?? 0; $new_args['fields'] = 'all'; // The terms for this level $terms = get_terms( $new_args ); // The children of each term on this level foreach( $terms as &$this_term ) { $new_args['parent'] = $this_term->term_id; $this_term->children = get_terms_tree( $new_args ); } return $terms; }
Usage is simple:
$terms = get_terms_tree([ 'taxonomy' => 'my-tax' ]);
-
- 2011-04-13
Assurez-vous que
hierarchical=true
esttransmis à votreget_terms()
appeler.Notez que
hierarchical=true
est la valeurpar défaut,alors vraiment,assurez-vous simplement qu'ellen'apas été remplacéepour êtrefalse
.Be sure that
hierarchical=true
is passed to yourget_terms()
call.Note that
hierarchical=true
is the default, so really, just be sure that it hasn't been overridden to befalse
.-
Salut Chip,oui «hiérarchique»est «vrai»par défaut.Hi Chip, yes 'hierarchical' is 'true' by default.
- 0
- 2011-04-13
- mike23
-
Pouvez-vousfournir un lien vers unexempleen direct de la sortie?Can you provide a link to a live example of the output?
- 0
- 2011-04-13
- Chip Bennett
-
Commenter une réponse laisséeil y après de deux ans?Vraiment?Enfait,c'est * une * réponseproposée,même sielleestformulée comme une question.Dois-je lemodifierpour qu'il s'agisse d'une déclarationplutôt que d'une question?Commenting on an answer left almost two years ago? Really? Actually, it *is* a proposed answer, even if worded as a question. Shall I edit it to be a statement, rather than a question?
- 0
- 2013-02-11
- Chip Bennett
-
`get_terms ()` retournera une liste complète destermes (comme le dit l'OP)maispas une liste hiérarchiquemontrant la relationparent/enfant comme demandé.`get_terms()` will return a full list of the terms (as the OP stated) but not a hierarchical list showing parent / child relationship as requested.
- 0
- 2016-03-17
- jdm2112
-
- 2013-03-25
Ici,j'ai une liste de sélection déroulante à quatreniveaux avec lepremier élémentmasqué
<select name="lokalizacja" id="ucz"> <option value="">Wszystkie lokalizacje</option> <?php $excluded_term = get_term_by('slug', 'podroze', 'my_travels_places'); $args = array( 'orderby' => 'slug', 'hierarchical' => 'true', 'exclude' => $excluded_term->term_id, 'hide_empty' => '0', 'parent' => $excluded_term->term_id, ); $hiterms = get_terms("my_travels_places", $args); foreach ($hiterms AS $hiterm) : echo "<option value='".$hiterm->slug."'".($_POST['my_travels_places'] == $hiterm->slug ? ' selected="selected"' : '').">".$hiterm->name."</option>\n"; $loterms = get_terms("my_travels_places", array("orderby" => "slug", "parent" => $hiterm->term_id,'hide_empty' => '0',)); if($loterms) : foreach($loterms as $key => $loterm) : echo "<option value='".$loterm->slug."'".($_POST['my_travels_places'] == $loterm->slug ? ' selected="selected"' : '')."> - ".$loterm->name."</option>\n"; $lo2terms = get_terms("my_travels_places", array("orderby" => "slug", "parent" => $loterm->term_id,'hide_empty' => '0',)); if($lo2terms) : foreach($lo2terms as $key => $lo2term) : echo "<option value='".$lo2term->slug."'".($_POST['my_travels_places'] == $lo2term->slug ? ' selected="selected"' : '')."> - ".$lo2term->name."</option>\n"; endforeach; endif; endforeach; endif; endforeach; ?> </select> <label>Wybierz rodzaj miejsca</label> <select name="rodzaj_miejsca" id="woj"> <option value="">Wszystkie rodzaje</option> <?php $theterms = get_terms('my_travels_places_type', 'orderby=name'); foreach ($theterms AS $term) : echo "<option value='".$term->slug."'".($_POST['my_travels_places_type'] == $term->slug ? ' selected="selected"' : '').">".$term->name."</option>\n"; endforeach; ?> </select>
Here I have four level dropdown select list with hidden first item
<select name="lokalizacja" id="ucz"> <option value="">Wszystkie lokalizacje</option> <?php $excluded_term = get_term_by('slug', 'podroze', 'my_travels_places'); $args = array( 'orderby' => 'slug', 'hierarchical' => 'true', 'exclude' => $excluded_term->term_id, 'hide_empty' => '0', 'parent' => $excluded_term->term_id, ); $hiterms = get_terms("my_travels_places", $args); foreach ($hiterms AS $hiterm) : echo "<option value='".$hiterm->slug."'".($_POST['my_travels_places'] == $hiterm->slug ? ' selected="selected"' : '').">".$hiterm->name."</option>\n"; $loterms = get_terms("my_travels_places", array("orderby" => "slug", "parent" => $hiterm->term_id,'hide_empty' => '0',)); if($loterms) : foreach($loterms as $key => $loterm) : echo "<option value='".$loterm->slug."'".($_POST['my_travels_places'] == $loterm->slug ? ' selected="selected"' : '')."> - ".$loterm->name."</option>\n"; $lo2terms = get_terms("my_travels_places", array("orderby" => "slug", "parent" => $loterm->term_id,'hide_empty' => '0',)); if($lo2terms) : foreach($lo2terms as $key => $lo2term) : echo "<option value='".$lo2term->slug."'".($_POST['my_travels_places'] == $lo2term->slug ? ' selected="selected"' : '')."> - ".$lo2term->name."</option>\n"; endforeach; endif; endforeach; endif; endforeach; ?> </select> <label>Wybierz rodzaj miejsca</label> <select name="rodzaj_miejsca" id="woj"> <option value="">Wszystkie rodzaje</option> <?php $theterms = get_terms('my_travels_places_type', 'orderby=name'); foreach ($theterms AS $term) : echo "<option value='".$term->slug."'".($_POST['my_travels_places_type'] == $term->slug ? ' selected="selected"' : '').">".$term->name."</option>\n"; endforeach; ?> </select>
-
Veuillezexpliquer **pourquoi ** celapourrait résoudre leproblème.Please explain **why** that could solve the problem.
- 2
- 2013-03-25
- fuxia
-
Jepense que la logiqueest que c'est unproblème connexe.J'aitrouvé ceposten essayant de comprendre comment obtenir une liste de contrôle hiérarchique de style catégorieet je suistenté d'ajouter une réponseicimaintenant queje l'ai compris.Jene leferaipasparce que,comme vous lefaites remarquer,celane répondpas à l'OQ.I think the logic is that it's a related problem. I found this post trying to figure out how to get a category-style hierarchical checklist and am tempted to add an answer here now that I've figured it out. I won't though because as you point out it doesn't answer the OQ.
- 0
- 2016-02-23
- jerclarke
J'ai unetaxonomie hiérarchique appelée «emplacementsgéographiques».Il contient les continents à unpremierniveau,puis lespayspour chacun.Exemple:
etc.
En utilisantget_terms (),j'ai réussi à afficher la liste complète destermes,mais les continents semélangent avec lespays,dans unegrande listeplate.
Commentpuis-jegénérer une liste hiérarchique comme ci-dessus?