En el pasado, le mostramos cómo mostrar subcategorías en páginas de categorías en WordPress. Recientemente, mientras trabajábamos con taxonomías personalizadas, encontramos la necesidad de ver taxonomías secundarias en la página Archivo de taxonomías principales. Después de investigar un poco, no hemos encontrado un solo tutorial sobre este tema. En este artículo, le mostraremos cómo ver una lista de taxonomías secundarias en las páginas de taxonomía.
Abra su archivo de plantilla de taxonomía personalizada que podría verse así: taxonomía- {taxonomyname} .php y pega el siguiente código donde quieras ver la lista:
<?php $term = get_term_by( 'slug', get_query_var( 'term' ), get_query_var( 'taxonomy' ) ); if ($term->parent == 0) { wp_list_categories('taxonomy=YOUR-TAXONOMY-NAME&depth=1&show_count=0 &title_li=&child_of=" . $term->term_id); } else { wp_list_categories("taxonomy=YOUR-TAXONOMY-NAME&show_count=0 &title_li=&child_of=" . $term->parent); } ?>
No olvide reemplazar YOUR-TAXONOMY-NAME con el nombre de su taxonomía.
Resultados finales:
Explicación:
Estamos usando get_term_by para consultar la información de taxonomía actual para slug. Por ejemplo, si su taxonomía se llama temas y está en una página / temas / nutrición /, la variable $ term extraerá todos los datos relacionados con la página de términos específicos en la que se encuentra.
En el proyecto en el que estábamos trabajando, la taxonomía de temas era jerárquica al igual que las categorías. Entonces decidimos ejecutar un condicional usando $ term-> variable principal. Esta variable devuelve el ID de la taxonomía principal. Entonces, si está en la taxonomía de nutrición, que es la taxonomía principal, entonces $ term-> parent mostrará 0. Por eso dijimos que si $ term-> parent == 0 entonces use wp_list_categories () función para mostrar los términos de nuestra taxonomía personalizada que son secundarios del término en el que se encuentra. Logramos esto usando $ term-> term_id como la variable child_of.
Ahora, si va a la página de taxonomía secundaria, estará en blanco porque $ term-> parent ya no será igual a 0. En una página de taxonomía secundaria, $ term-> parent devuelve el ID de la categoría principal. Así que ejecutamos una instrucción else usando la misma función wp_list_categories () excepto que cambiamos $ term-> term_id a $ term-> parent.
Aquí lo tienes. Esperamos que esto ayude a todos aquellos que buscan una solución.
¿Te ha resultado útil??
0 / 0