Como obter o ID da categoria da postagem atual?

2

Eu preciso obter o ID da categoria da postagem atual fora do loop. Primeiro eu obtenho a categoria com base no ID do post:

global $wp_query;
$postcat = get_the_category( $wp_query->post->ID );

Agora, como obter o ID da categoria? Eu tentei: $cat_id = $postcat->term_id; mas não está funcionando.

    
por jrcollins 30.11.2016 / 05:32

4 respostas

9

Quando você usa a função get_the_category() para obter os dados da categoria, ela retorna a matriz do objeto, portanto, você precisa acessar o ID da categoria passando a chave do array, como este $postcat[0]->term_id

global $post;
$postcat = get_the_category( $post->ID );

// try print_r($postcat) ;  

if ( ! empty( $postcat ) ) {
    echo esc_html( $postcat[0]->name );   
}

Espero que esta ajuda!

    
por Govind Kumar 30.11.2016 / 05:38
0

Uma melhoria para a resposta de Govind Kumar, já que o usuário pergunta sobre o ID da categoria , não sobre o nome da categoria . O nome da propriedade do objeto para o ID da categoria é " cat_ID ".

// get cat ID for general view
$postcat = get_the_category( $query->post->ID );
if ( ! empty( $postcat ) ) {
 echo $postcat[0]->cat_ID;
}
    
por Jan Desta 28.07.2018 / 14:05
0
function catName($cat_id) {
    $cat_id = (int) $cat_id;
    $category = &get_category($cat_id);
    return $category->name;
}
function catLink($cat_id) {
    $category = get_the_category();
    $category_link = get_category_link($cat_id);
    echo $category_link;
}

function catCustom() {
   $cats = get_the_category($post->ID);
    $parent = get_category($cats[1]->category_parent);
    if (is_wp_error($parent)){
        $cat = get_category($cats[0]);
      }
      else{
        $cat = $parent;
      }
    echo '<a href="'.get_category_link($cat).'">'.$cat->name.'</a>';    
}

USE <a href="<?php catLink(1); ?>"> <?php catName(1); ?>

    
por swibo 10.11.2018 / 09:10
-1
global $post;
$postcat = get_the_category( $post->ID );
    if ( ! empty( $postcat ) ) {
       foreach ($postcat  as $nameCategory) {
           echo $nameCategory->name .' ';   
         }                                      
    }?>
    
por Nguyễn Tiến Dũng 07.07.2018 / 18:57