J'ai une taxonomie hiérarchique appelée «lieux géographiques». Il contient les continents sur un premier niveau, puis les pays pour chacun. Exemple :
Europe
- Ireland
- Spain
- Sweden
Asia
- Laos
- Thailand
- Vietnam
etc.
En utilisant get_terms (), j’ai réussi à afficher la liste complète des termes, mais les continents se confondent avec les pays, dans une grande liste à plat.
Comment puis-je sortir une liste hiérarchique comme ci-dessus?
taxonomy
list
terms
hierarchical
mike23
la source
la source
Réponses:
À utiliser
wp_list_categories
avec l''taxonomy' => 'taxonomy'
argument, il est conçu pour créer des listes de catégories hiérarchiques, mais prend également en charge l'utilisation d'une taxonomie personnalisée.Exemple Codex:
Afficher les termes dans une taxonomie personnalisée
Si la liste revient à plat, il est possible que vous ayez juste besoin d'un peu de CSS pour ajouter du remplissage aux listes, afin de voir leur structure hiérarchique.
la source
Je me rends compte qu’il s’agit d’une question très ancienne, mais si vous avez besoin de mettre en place une structure réelle de termes, cette méthode pourrait vous être utile:
L'utilisation est la suivante:
la source
$into[$cat->term_id] = $cat;
en$into[] = $cat;
ayant l'ID du terme car la clé du tableau est ennuyeuse (vous ne pouvez pas obtenir facilement le premier élément en utilisant la clé 0) et inutile (vous stockez déjà l'$cat
objet et vous pouvez obtenir l'ID en utilisant laterm_id
propriété.Je ne connais aucune fonction qui fasse ce que vous voulez, mais vous pouvez construire quelque chose comme ceci:
Je n'ai pas testé cela, mais vous pouvez voir où je veux en venir. Le code ci-dessus ne vous donnera que deux niveaux.
EDIT: ahh oui, vous pouvez utiliser wp_list_categories () pour faire ce que vous voulez.
la source
wp_list_categories()
pour ajouter vos paramètres GET. Ou mieux encore, créez un filtre pour que la fonction ajoute les bits que vous souhaitez. Ne me demandez pas comment vous faites cela car je n'ai pas encore réussi à comprendre ce qui se passe :(wp_list_categories
si vous voulez plus de contrôle sur la sortie, il va rendre votre code beaucoup plus réutilisable ..Vous pouvez utiliser wp_list_categories () avec un argument 'taxonomy'.
la source
Comme je cherchais la même chose, mais pour obtenir les conditions d'un poste, je l'ai finalement compilé, et cela fonctionne pour moi.
Ce qu'il fait:
• Il donne tous les termes d'un nom de taxonomie pour un poste spécifique.
• pour une taxonomie hiérarchique à deux niveaux (ex: niveau1: 'pays' et niveau2: 'villes'), il crée un h4 avec le niveau1 suivi d'une liste ul de niveau2 et ceci pour tous les éléments de niveau1.
• si la taxonomie n'est pas hiérarchique, il ne créera qu'une liste ul de tous les éléments. voici le code (je l’écris pour moi alors j’ai essayé d’être aussi générique que possible mais ...):
Alors finalement, vous appelez la fonction avec ceci (évidemment, vous remplacez my_taxonomy par le vôtre):
finishingLister('my_taxonomy');
Je ne prétends pas que c'est parfait, mais comme je l'ai dit, cela fonctionne pour moi.
la source
Le code suivant générera une liste déroulante avec les termes, mais peut également générer tout autre élément / structure en modifiant la variable $ outputTemplate et en modifiant les lignes str_replace:
la source
J'ai eu ce problème et aucune des réponses ici ne fonctionnait pour moi, pour une raison ou une autre.
Voici ma version mise à jour et de travail.
Et utilisation:
la source
J'ai utilisé le code @popsi qui fonctionnait très bien et je l'ai rendu plus efficace et plus facile à lire:
Utilisation:
la source
Assurez-vous que cela
hierarchical=true
est passé à votreget_terms()
appel.Notez que
hierarchical=true
c'est la valeur par défaut, alors assurez-vous simplement qu'elle n'a pas été remplacéefalse
.la source
get_terms()
renverra une liste complète des termes (comme indiqué par le PO), mais pas une liste hiérarchique indiquant la relation parent / enfant demandée.Ici, j'ai une liste de sélection à quatre niveaux avec le premier élément caché
la source