Tengo una taxonomía jerárquica llamada 'ubicaciones geográficas'. Contiene continentes en un primer nivel, y luego los países para cada uno. Ejemplo:
Europe
- Ireland
- Spain
- Sweden
Asia
- Laos
- Thailand
- Vietnam
etc.
Usando get_terms () logré generar la lista completa de términos, pero los continentes se mezclan con los países, en una gran lista plana.
¿Cómo puedo generar una lista jerárquica como la anterior?
taxonomy
list
terms
hierarchical
mike23
fuente
fuente
Respuestas:
Úselo
wp_list_categories
con el'taxonomy' => 'taxonomy'
argumento, está diseñado para crear listas de categorías jerárquicas, pero también admitirá el uso de una taxonomía personalizada.Ejemplo del Codex:
Mostrar términos en una taxonomía personalizada
Si la lista vuelve a verse plana, es posible que solo necesite un poco de CSS para agregar relleno a las listas, para que pueda ver su estructura jerárquica.
fuente
Me doy cuenta de que esta es una pregunta muy antigua, pero si necesita construir una estructura de términos real , este podría ser un método útil para usted:
El uso es el siguiente:
fuente
$into[$cat->term_id] = $cat;
en$into[] = $cat;
Tener el ID del término como la clave de la matriz es molesto (no se puede conseguir el primer elemento fácilmente utilizando la tecla 0) e inútil (que ya está almacenando el$cat
objeto y se puede obtener el ID utilizando laterm_id
propiedad.No conozco ninguna función que haga lo que quieres, pero puedes construir algo como esto:
No he probado esto, pero puedes ver a lo que me refiero. Lo que hará el código anterior es darte solo dos niveles
EDITAR: ahh sí, puedes usar wp_list_categories () para hacer lo que quieras después.
fuente
wp_list_categories()
para agregar sus parámetros GET. O incluso mejor, cree un filtro para que la función agregue los bits que desee. No me pregunten cómo lo hacen, ya que aún no he podido entenderlo :(wp_list_categories
si desea un mayor control sobre la salida, que va a hacer el código mucho más reutilizable ..Puede usar wp_list_categories (), con un argumento de 'taxonomía'.
fuente
Como estaba buscando lo mismo pero para obtener los términos de una publicación, finalmente compilé esto, y funciona para mí.
Lo que hace:
• obtiene todos los términos de un nombre de taxonomía para una publicación específica.
• para una taxonomía jerárquica con dos niveles (por ejemplo, nivel1: 'país' y nivel2: 'ciudades'), crea un h4 con el nivel1 seguido de una lista ul de nivel2 y esto para todos los elementos de nivel1.
• si la taxonomía no es jerárquica, creará solo una lista ul de todos los elementos. aquí está el código (lo escribí para mí, así que traté de ser lo más genérico posible pero ...):
Entonces finalmente llamas a la función con esto (obviamente, reemplazas my_taxonomy por la tuya):
finishingLister('my_taxonomy');
No pretendo que sea perfecto, pero como dije, funciona para mí.
fuente
El siguiente código generará un menú desplegable con términos, pero también puede generar cualquier otro elemento / estructura editando la variable $ outputTemplate y editando las líneas str_replace:
fuente
Tuve este problema y ninguna de las respuestas aquí funcionó para mí, por una razón u otra.
Aquí está mi versión actualizada y funcional.
Y uso:
fuente
Utilicé el código @popsi que funcionaba muy bien y lo hice más eficiente y fácil de leer:
Uso:
fuente
Asegúrese de que
hierarchical=true
se le pase a suget_terms()
llamada.Tenga en cuenta que ese
hierarchical=true
es el valor predeterminado, así que realmente, asegúrese de que no se haya anuladofalse
.fuente
get_terms()
devolverá una lista completa de los términos (como indicó el OP) pero no una lista jerárquica que muestre la relación padre / hijo como se solicitó.Aquí tengo una lista de selección desplegable de cuatro niveles con el primer elemento oculto
fuente