Ver Mensaje Individual
  #2 (permalink)  
Antiguo 29/05/2014, 03:37
Avatar de AlejandroGalvez
AlejandroGalvez
 
Fecha de Ingreso: noviembre-2013
Mensajes: 189
Antigüedad: 10 años, 5 meses
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