web-dev-qa-db-fra.com

Obtenir l'ID de la catégorie actuelle de la page active

Vous cherchez à extraire l'ID de catégorie d'une page spécifique dans WordPress qui répertorie tous les messages utilisant cette catégorie spécifique. Essayé le dessous mais ne fonctionne pas. Je peux obtenir le nom de la catégorie en utilisant single_term_title.

$category = single_term_title("", false);
$catid = get_cat_ID( $category );

$category affiche "Entertainment" par exemple. Mais j'ai aussi besoin de l'ID "Entertainment". Comment pourrais-je m'y prendre?

64
RonnieT

Vous pouvez essayer d’utiliser get_the_category() :

$categories = get_the_category();
$category_id = $categories[0]->cat_ID;
52
ash108

S'il s'agit d'une page de catégorie, vous pouvez obtenir l'identifiant de la catégorie actuelle en:

$category = get_category( get_query_var( 'cat' ) );
$cat_id = $category->cat_ID;

Si vous voulez obtenir l'id de la catégorie d'une catégorie particulière sur une page, essayez d'utiliser: 

$category_id = get_cat_ID('Category Name');
173
Ram Mehar Deswal

Le moyen le plus ancien mais le plus rapide que vous pouvez utiliser est:

$cat_id = get_query_var('cat');
28
Fred K

J'utilise la fonction get_queried_object pour obtenir la catégorie actuelle sur une page de modèle category.php.

$current_category = get_queried_object();

Jordan Eldredge a raison, get_the_category ne convient pas ici. 

16
Shaffe

Je pense que certaines des solutions ci-dessus peuvent fonctionner, mais utiliser la fonction get_the_category semble compliqué et peut donner des résultats inattendus.

Je pense que le moyen le plus simple et le plus simple d'accéder à l'identifiant d'un chat dans une page de catégorie est:

$wp_query->query_vars['cat']

À votre santé

2
Jorge Orpinel

Alternative - 

 $catID = the_category_ID($echo=false);

EDIT: La fonction ci-dessus est obsolète, veuillez utiliser get_the_category()

1
Bheru Lal Lohar

Je l'ai utilisé pour la chapelure dans la page de modèle de catégorie:

$cat_obj = $wp_query->get_queried_object();
$thiscat_id = $cat_obj->term_id;
$thiscat = get_category($thiscat_id);
$parentcat = get_category($thiscat->parent);
1

J'ai trouvé cette question en cherchant exactement ce que vous avez demandé. Malheureusement, vous avez accepté une réponse incorrecte. Pour le bien des autres personnes qui essaient de réaliser ce que nous essayions de faire, je pensais poster la bonne réponse.

$cur_cat = get_cat_ID( single_cat_title("",false) );

Comme vous l'avez dit, single_term_title("", false); renvoyait correctement le titre de la catégorie, je ne sais pas pourquoi vous auriez eu des problèmes avec votre code; mais le code ci-dessus fonctionne parfaitement pour moi.

0
Bill

J'ai essayé ci-dessus pour trouver des solutions pour trouver l'identifiant de chat d'un message, mais rien n'a fonctionné, utilisez plutôt ce qui suit:

$obj = get_queried_object();
$c_id = wp_get_post_categories($obj->ID);
0
Robert Sinclair
$cats = wp_get_post_terms( $post->ID, 'product_cat' );
foreach($cats as $cat){
/*check for category having parent or not except category id=1 which is wordpress default category (Uncategorized)*/
  if($cat->parent != '0' && $cat->term_id != 1){
    echo '<h2 class="link"><a href="'.get_category_link($cat->term_id ).'">'.$cat->name.'</a></h2>';
    break;
  }
}
0
Abhijit Patel