Ramón, miembro de nuestro equipo, nos ha hecho el favor de crear esta crónica ya que domina perfectamente dicho tema.
Solución:
Deberá utilizar el valor de ID devuelto por $category[0]->category_parent
y pasarlo get_term()
. Ejemplo:
$category = get_the_category();
$category_parent_id = $category[0]->category_parent;
if ( $category_parent_id != 0 )
$category_parent = get_term( $category_parent_id, 'category' );
$css_slug = $category_parent->slug;
else
$css_slug = $category[0]->slug;
Deberá consultar los datos de la categoría principal. get_category
está bastante construido para hacer eso.
$category = get_the_category();
$parent = get_category($category[0]->category_parent);
echo $parent->slug;
Eso devolverá el padre inmediato de la categoría. Que se da este conjunto de categorías:
- Dibujos animados
- Perro
- Scooby
- Perro
El código de arriba devolverá “Perro” si le das la ID de “Scooby”. Si desea la categoría principal superior, “Dibujos animados”, sin importar qué tan profundo sea el anidamiento, use algo como esto:
$category = get_the_category();
$parent = get_ancestors($category[0]->term_id,'category');
if (empty($parent))
$parent[] = array($category[0]->term_id);
$parent = array_pop($parent);
$parent = get_category($parent);
if (!is_wp_error($parent))
var_dump($parent);
else
echo $parent->get_error_message();
Eso también tiene la ventaja de un manejo de errores relativamente limpio.
Recuerda algo, que te brindamos la opción de agregar una reseña si diste con el arreglo.