¿Cómo obtener el ID de categoría en single.php de WordPress?

22 dic 2012, 13:24:07
Vistas: 32.4K
Votos: 2

Necesito obtener el id de categoría en single.php. Probé esto:
$cat_ID = get_query_var('cat');

No funcionó. ¿Qué debería usar en su lugar?

Puedes usar cualquiera de estas soluciones:

// Método 1: Usando get_the_category()
$categories = get_the_category();
$category_id = $categories[0]->term_id;

// Método 2: Usando wp_get_post_categories()
$category_ids = wp_get_post_categories(get_the_ID());
$category_id = $category_ids[0];

// Método 3: Para obtener todas las categorías de la entrada
$categories = get_the_category();
foreach($categories as $category) {
    $category_id = $category->term_id;
    // Hacer algo con el ID de la categoría
}
0
Todas las respuestas a la pregunta 2
0

Usar wp_get_post_categories()

Recupera la lista de categorías para una entrada.

<?php wp_get_post_categories( $post_id, $args ) ?>

Ten en cuenta que la función devuelve un array (de IDs de categorías) incluso si solo tienes una categoría en tu entrada.

El ejemplo a continuación muestra cómo se recuperan las categorías y luego se obtiene información adicional para cada categoría.

$post_categories = wp_get_post_categories( $post_id );
$cats = array();

foreach($post_categories as $c){
    $cat = get_category( $c );
    $cats[] = array( 'name' => $cat->name, 'slug' => $cat->slug );
}

Referencia: http://codex.wordpress.org/Function_Reference/wp_get_post_categories

Otra opción:

Usar get_the_terms();

<?php
    $id = get_the_id();
    $terms = get_the_terms( $id, 'category' );
    // print_r( $terms );
    foreach($terms as $term) {
        echo $term->cat_ID;   
    }
?>
22 dic 2012 14:39:08
1

Puedes usar simplemente

$categories = get_the_category();

para obtener las categorías asignadas.

22 dic 2012 13:40:39
Comentarios