Obtener la categoría principal superior en WordPress

25 abr 2015, 15:23:50
Vistas: 13.7K
Votos: 5

Mi estructura de categorías es la siguiente:

- Categoría Principal
---- Subcategoría 1
------- Sub Subcategoría 1.1
------- Sub Subcategoría 1.2
------- Sub Subcategoría 1.3
---- Subcategoría 2
------- Sub Subcategoría 2.1
------- Sub Subcategoría 2.2
------- Sub Subcategoría 2.3

Estoy en una publicación bajo 1.2, por lo que sería:

Categoría Principal -> Subcategoría 1 -> Sub Subcategoría 1.2 -> Publicación actual

Nota: En la publicación SOLO "Subcategoría 1" y "Sub Subcategoría 1.2" están seleccionadas como categorías ("Categoría Principal" no está marcada).

Ahora, ¿cómo puedo obtener el slug de la Categoría Principal ("categoria-principal"), navegando hacia atrás?

¡Gracias!

0
Todas las respuestas a la pregunta 2
0

get_ancestros() devuelve un array que contiene los padres de cualquier objeto dado.

Este ejemplo tiene dos categorías. La categoría padre con el ID 447 y la categoría hija con el ID 448, y devuelve una jerarquía de categorías (con IDs):

get_ancestors( 448, 'category' );

devuelve:

Array
(
    [0] => 447
)

Página del Codex para get_ancestors

22 dic 2015 01:16:26
0

get_ancestors()

Es la forma correcta de obtener todas las categorías padre de una categoría específica en orden jerárquico, por lo que para obtener la categoría padre de nivel más alto podrías extraer el último elemento del array devuelto de esta manera:

// obteniendo todos los ancestros de las categorías
$ancestor_cat_ids = get_ancestors($queried_cat_id, 'category');

// obteniendo el último elemento del array de ids devuelto por la función get_ancestors()
$highest_ancestor = $ancestor_cat_ids[count($ancestor_cat_ids) - 1];
20 sept 2019 10:28:23