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

ID categoria padre

Estas en el tema de ID categoria padre en el foro de WordPress en Foros del Web. Hola, no encuentro la forma de sacar en una pagina el id de la categoria padre. Por ejemplo: Coches (ID 4) - BMW - Audi ...
  #1 (permalink)  
Antiguo 29/05/2014, 03:08
 
Fecha de Ingreso: septiembre-2007
Mensajes: 59
Antigüedad: 17 años, 1 mes
Puntos: 0
ID categoria padre

Hola, no encuentro la forma de sacar en una pagina el id de la categoria padre. Por ejemplo:

Coches (ID 4)
- BMW
- Audi
Motos (ID 5)
- Honda
- Harley

Si yo estoy en un post dentro de Harley, me muestre el ID 5.
Si estoy en un post dentro de Audi, que me muestre el ID 4

Gracias
  #2 (permalink)  
Antiguo 29/05/2014, 03:37
Avatar de AlejandroGalvez  
Fecha de Ingreso: noviembre-2013
Mensajes: 189
Antigüedad: 11 años
Puntos: 49
Respuesta: ID categoria padre

Debes tener en cuenta que un post puede estar asignado a varias categorías por lo que puede tener varios padres si buscas en categorías a las que pertenece. Te planteo la solución al problema general considerando mi apunte anterior:

Código PHP:
//En este array almacenaremos los IDs de las categorías padre dado que pueden se más de una
$categorias_padre    = array();
//Obtenemos todas las categorías del post actual
$categorias    get_the_category();

if ( 
$categorias ) {
    
    foreach ( 
$categorias as $categoria ) {
        
        
//Comprobamos que exista una categoría padre
        
if ( $categoria->category_parent != '0' ) {
            
            
//Añadimos el ID de la categoría padre a nuestro array
            
$categorias_padre[]    = $categoria->category_parent;
            
        }
        
    }
    

Esto solo recuperará a los padres que estén un nivel por encima solamente. No recuperaría "abuelos", para ello habría que hacer una función recursiva. Si tu problema es tan específico que cada post solo pertenecerá a una única categoría y solamente necesitas el padre de esta prueba con:

Código PHP:
//Obtenemos las categorias a las que pertenece el post
$categorias    get_the_category();
//Obtenemos la categoria a la que pertenece el post
$categoria    get_category$categorias[0]->term_id; );
//Guardamos la ID de la categoría padre si existe, en caso contrario guardaremos FALSE
$categoria_padre    = ( $categoria && $categoria->category_parent != '0' ) ? $categoria->category_parent false
Si lo que pretendes es hacer un breadcrumb ( Categoría 1 > Hija > Nieta ) simplemente utiliza esta función:

http://codex.wordpress.org/Function_...tegory_parents

Enlaces de interés:

http://codex.wordpress.org/Function_...e/get_category
http://codex.wordpress.org/Function_...t_the_category
  #3 (permalink)  
Antiguo 29/05/2014, 09:47
Avatar de TMeister
Crazy Coder
 
Fecha de Ingreso: enero-2002
Ubicación: En la Oficina
Mensajes: 2.880
Antigüedad: 22 años, 10 meses
Puntos: 193
Respuesta: ID categoria padre

Yo utilizo esta función, con ella obtienes la categoría mas alta en la jerarquía:

Código PHP:
Ver original
  1. function get_top_category($catid){
  2.     while ($catid) {
  3.         $cat = get_category($catid);
  4.         $catid = $cat->category_parent;
  5.         $cat_parent = $cat;
  6.     }
  7.     return $cat_parent;
  8. }
  9.  
  10. //CALL
  11. $parent = get_top_category( $catid );

Etiquetas: padre, 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 12:16.