Cum obții ID-ul categoriei pentru articolul curent?
Am nevoie să obțin ID-ul categoriei articolului curent în afara buclei. Mai întâi obțin categoria pe baza ID-ului articolului:
global $wp_query;
$postcat = get_the_category( $wp_query->post->ID );
Acum cum obțin ID-ul categoriei? Am încercat: $cat_id = $postcat->term_id;
dar nu funcționează.

Când folosești funcția get_the_category()
pentru a obține datele categoriei, aceasta returnează un array de obiecte, așa că trebuie să accesezi ID-ul categoriei prin transmiterea cheii array-ului, astfel: $postcat[0]->term_id
global $post;
$postcat = get_the_category( $post->ID );
// poți încerca print_r($postcat) ;
if ( ! empty( $postcat ) ) {
echo esc_html( $postcat[0]->name );
}
Sper că acest lucru te ajută!

Postare veche, știu, dar wp_get_post_categories
este probabil ceea ce cauți.
$cats = wp_get_post_categories( get_the_ID(), array( 'fields' => 'ids' ) );
Aceasta va returna un array cu ID-uri de categorii, astfel:
array (size=3)
0 => int 13
1 => int 15
2 => int 120
Deci, dacă vrei doar un ID de categorie, îl poți obține din prima cheie din array-ul de ID-uri de categorii.
$category_id = $cats[0];

O îmbunătățire a răspunsului lui Govind Kumar, întrucât întrebarea se referă la ID-ul categoriei, nu la numele categoriei. Proprietatea obiectului pentru ID-ul categoriei este "cat_ID".
// obține ID-ul categoriei pentru vizualizare generală
$postcat = get_the_category( $query->post->ID );
if ( ! empty( $postcat ) ) {
echo $postcat[0]->cat_ID;
}

/**
* Returnează numele unei categorii pe baza ID-ului
* @param int $cat_id ID-ul categoriei
* @return string Numele categoriei
*/
function catName($cat_id) {
$cat_id = (int) $cat_id;
$category = &get_category($cat_id);
return $category->name;
}
/**
* Afișează link-ul unei categorii pe baza ID-ului
* @param int $cat_id ID-ul categoriei
*/
function catLink($cat_id) {
$category = get_the_category();
$category_link = get_category_link($cat_id);
echo $category_link;
}
/**
* Afișează un link personalizat către categoria părinte sau directă a postului curent
*/
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>';
}
FOLOSEȘTE <a href="<?php catLink(1); ?>"> <?php catName(1); ?>
