Contenido

Obtener el ID de la categoría padre

13 Nov

+ 4

Dani, me preguntaba hace unos días como obtener el ID del padre de una categoría si tenemos el ID del hijo, en un principio pensé que con la función get_category_parents() estaría servido, pero no era exactamente lo que estaba buscando.

Únicamente necesitaba una función que te permitiera obtener el ID de la categoría padre y nada más información. Debido al nuevo sistema taxonómico de Wordpress 2.3 y superiores, el tema de las categorías está un poco más escondido, pero sigue ahí.

Y echandolé un vistazo al esquema de base de datos, podemos sacar una función rápidamente que no haga este cometido. La función es muy simple y con una select bastante simple podemos obtener un resultado optimo.

function get_parent_id($idHijo) {
  global $wpdb;
  return $wpdb->get_var(sprintf("SELECT parent FROM $wpdb->term_taxonomy WHERE term_id = %d", $idHijo));
}
//Modo de uso
echo get_parent_id(2);

Me parece raro que Wordpress no tenga ninguna función que haga algo parecido, quizas me la he pasado sin darme cuenta, en cualquier caso, aqui está.

Buena, me gustaría una función que encontrase no solo la categoría padre, sino la primera categoría padre, es decir: en caso de que existan más niveles la Id del primer nivel

Gracias Anieto, eres un mostro…

Yo la habia resuelto, pero algo mas complicado:
function id_cat_padre($idsubcat) {
global $wpdb;

$querystr =”
SELECT wp_term_taxonomy.parent FROM wp_term_taxonomy
WHERE wp_term_taxonomy.taxonomy=’category’
AND wp_term_taxonomy.term_id=$idsubcat
LIMIT 1″;

$id_hijo = $wpdb->get_results($querystr, OBJECT);

if ($id_hijo) {
foreach ($id_hijo as $idhijo) {
$salida_id_hijo = $idhijo->parent;
}
}

echo $salida_id_hijo;
}

Ahora con lo que estoy es tratando de sacar la categoria hijo y mostrar solo esta dentro del loop. Es decir, todos los post siempre van a tener dos categorias, una padre y otra hijo, yo solo quiero mostrar en el index.php (y dentro del loop claro esta) la categoria hijo a la que pertenezca el post…

Mil gracias

Acabo de probarlo..!! funciona a la perfeccion!!! Y como bien dices… debemos acostumbrarnos al nuevo sistema taxonomico del Wordpress!!! Ya estuve “metiendome” a las nuevas tablas de la base de datos. Si que han resumido.!!! De nuevo .. Gracias!!!

Comentar

#

Me reservo el derecho de eliminar y/o modificar los comentarios que contengan lenguaje inapropiado, spam u otras conductas no apropiadas en una comunidad civilizada. Si tu comentario no aparece, puede ser que akismet lo haya capturado, cada día lo reviso y lo coloco en su lugar. Siento las molestias.