Foros del Web » Creando para Internet » Sistemas de gestión de contenidos » WordPress »

saber subcategoria pertenece el post

Estas en el tema de saber subcategoria pertenece el post en el foro de WordPress en Foros del Web. Hola, soy nuevo en wordpress. Estoy montando una web que tiene varias categorias anidadas: - Cat 1 - Cat 2 -SubCat A -SubCat Aa -SubCat ...
  #1 (permalink)  
Antiguo 11/10/2011, 09:48
 
Fecha de Ingreso: noviembre-2009
Mensajes: 41
Antigüedad: 15 años
Puntos: 10
Pregunta saber subcategoria pertenece el post

Hola, soy nuevo en wordpress. Estoy montando una web que tiene varias categorias anidadas:

- Cat 1
- Cat 2
-SubCat A
-SubCat Aa
-SubCat Ab
-SubCat B
-SubCat C
- Cat 3

Entonces, cuando selecciono un post, que, por ejemplo, esta dentro de la categoria "SubCat Ab", pues necesito que aparte de la info del post me indique la categoria en la que está.

En single.php he puesto:

Código:
<h1><?php
$categoria = get_the_category(); $parent = get_cat_name($categoria[0]->category_parent); if (!empty($parent)) { echo $parent; } else { echo $categoria[0]->cat_name; }
?>
Pero me muestra "Cat2", yo lo que quiero es la subcategoria inmediata, que me muestre "SubCat Ab".

¿Cómo puedo lograrlo?

Gracias de antemano.
  #2 (permalink)  
Antiguo 11/10/2011, 10:13
Avatar de TMeister
Crazy Coder
 
Fecha de Ingreso: enero-2002
Ubicación: En la Oficina
Mensajes: 2.880
Antigüedad: 22 años, 11 meses
Puntos: 193
Respuesta: saber subcategoria pertenece el post

Debe funcionar, eso te debería mostrar la categoría padre inmediata, prueba usar get_category_parents para ver la herencia de las categorías y ver que todo este bien, algo así

Código PHP:
Ver original
  1. <?php
  2.     $cat = get_the_category();
  3.     $parent = $cat[0]->category_parent;
  4.     echo get_category_parents( $cat[0]->term_id, FALSE, " > " )."<br>";
  5.     echo get_cat_name( $parent );
  6. ?>
:

esto te debe mostrar algo como esto:

Abuelo > Padre > Hijo >

Saludos!!
  #3 (permalink)  
Antiguo 11/10/2011, 10:45
 
Fecha de Ingreso: noviembre-2009
Mensajes: 41
Antigüedad: 15 años
Puntos: 10
Respuesta: saber subcategoria pertenece el post

Gracias TMeister,
Vale, veo que hay 2 problemas:

1.- - El orden de las subcategorias no me lo hace bien en algunos casos... no me muestra una subcategoria,
mirando en el admin, en "todas las entradas", veo que justamente fallan en los que en la columna de categorias, no me lo muestra siguiendo la jerarquia correcta. En el admin, en lugar de: "SubCat Aa, SubCat A, Cat 3" me pone: " SubCat A, SubCat Aa, Cat 3".
Hay algunas subcategorias que las creé a posteriori, puede ser eso? pero las puse dentro de la categoria y en cada post marqué la que toca...
no debería igualmente mostrarme según orden jerárquico?


2.- - luego hay algunos post que tienen 2 categorias superiores y entonces, no me muestra la subcategoria a la que correspode...

A ver, me explico, la jerarquía de las categorias es la que dije antes,
sólo que para algunos posts tengo una categoría llamada "especial", (para así poder llamar en concreto esos posts en una página concreta),
entonces tienen esa categoria "especial" pero a la vez estan en su correspondiente categoria y subcategoria.
Pero cuando quiero que me muestre la subcategoria inmediata quiero que sea la suya propia, no la especial, esa solo es para manejar el código.

Por ejemplo, un post de "SubCat Ab", que también tenga categoria especial tiene:
- Cat 2 > SubCat A > SubCat Ab
- catEspecial

Pero, me muestra sólo catEspecial, del resto pasa olímpicamente...

Puedo discriminar esa categoria y que me diga la propia del post?



Edito:
El punto 2 lo he solucionado, en lugar de poner 2 categorias lo hago con categoria + tag así evito este problema entre categorias...

El punto 1 del orden de las categorias aún no lo he logrado, a ver si alguien puede echarme una mano...

Última edición por rege; 11/10/2011 a las 11:36

Etiquetas: php, post
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 13:45.