En el pasado, le mostramos cómo mostrar subcategorías en páginas de categoría en WordPress. Recientemente, al trabajar con Taxonomías personalizadas, encontramos la necesidad de mostrar taxonomías secundarias en la página de archivo de taxonomías principales. Después de investigar un poco, no encontramos un solo tutorial que cubriera este tema. En este artículo, le mostraremos cómo mostrar una lista de taxonomías secundarias en páginas de taxonomías.

Abra su archivo personalizado de plantilla de taxonomía que puede verse así: taxonomía- {taxonomyname} .php y pegue el siguiente código donde quiera que quiera mostrar la lista:

padre == 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.

Resultado final:

Lista de taxonomías

Explicación:

Estamos usando get_term_by para consultar la información de la taxonomía actual por slug. Por ejemplo, si su taxonomía se llama tópicos y se encuentra en una página / temas / nutrición / entonces, la variable $ term obtendrá 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 la variable $ term-> parent. Esta variable genera el ID de la taxonomía principal. Entonces, si usted está en la taxonomía de nutrición que es la taxonomía principal, entonces $ term-> parent hará eco de 0. Es por eso que dijimos si $ term-> parent == 0 luego usamos la función wp_list_categories () para mostrar los términos de nuestra costumbre taxonomía que son hijos del término en qué página se encuentra. Lo logramos usando $ term-> term_id como la variable child_of.

Ahora, si va a la página de taxonomía infantil, estaría en blanco porque $ término-> padre ya no equivaldría a 0. En una página de taxonomía infantil, $ término-> padre genera el ID de la categoría padre. Entonces, ejecutamos una instrucción else usando la misma función wp_list_categories (), excepto que cambiamos $ term-> term_id por $ term-> parent.

Ahí tienes. Esperamos que esto ayude a todos los que están buscando una solución.