Suchen Sie nach der Kategorie-ID einer bestimmten Seite in WordPress, die alle Beiträge dieser bestimmten Kategorie auflistet. Versuchte das unten aber nicht. Ich kann den Kategorienamen mit single_term_title
abrufen.
$category = single_term_title("", false);
$catid = get_cat_ID( $category );
$category
zeigt zum Beispiel "Entertainment" an. Ich brauche aber auch die ID von "Entertainment". Wie würde ich das angehen?
Sie können versuchen, get_the_category()
zu verwenden:
$categories = get_the_category();
$category_id = $categories[0]->cat_ID;
Wenn es sich um eine Kategorieseite handelt, können Sie die ID der aktuellen Kategorie folgendermaßen erhalten:
$category = get_category( get_query_var( 'cat' ) );
$cat_id = $category->cat_ID;
Wenn Sie die Kategorie-ID einer bestimmten Kategorie auf einer beliebigen Seite erhalten möchten, versuchen Sie es mit:
$category_id = get_cat_ID('Category Name');
Der älteste, aber schnellste Weg, den Sie verwenden können, ist:
$cat_id = get_query_var('cat');
Ich verwende die Funktion get_queried_object, um die aktuelle Kategorie auf einer Vorlagenseite von category.php abzurufen.
$current_category = get_queried_object();
Jordan Eldredge hat recht, get_the_category eignet sich hier nicht.
Ich denke, einige der oben genannten Dinge funktionieren möglicherweise, aber die Verwendung der Funktion get_the_category erscheint schwierig und kann unerwartete Ergebnisse liefern.
Ich denke, der direkteste und einfachste Weg, auf die Katzen-ID auf einer Kategorieseite zuzugreifen, ist:
$wp_query->query_vars['cat']
Prost
Alternative -
$catID = the_category_ID($echo=false);
BEARBEITEN: Obige Funktion ist veraltet, bitte verwenden Sie get_the_category()
Ich habe dies für Breadcrumbs auf der Kategorieschablonenseite verwendet:
$cat_obj = $wp_query->get_queried_object();
$thiscat_id = $cat_obj->term_id;
$thiscat = get_category($thiscat_id);
$parentcat = get_category($thiscat->parent);
Ich habe diese Frage gefunden, als ich genau das gesucht habe, was Sie gefragt haben. Leider haben Sie eine falsche Antwort akzeptiert. Für andere Leute, die versuchen, das zu erreichen, was wir erreichen wollten, dachte ich, ich würde die richtige Antwort posten.
$cur_cat = get_cat_ID( single_cat_title("",false) );
Wie Sie sagten, single_term_title("", false);
hat den Kategorietitel korrekt zurückgegeben, bin ich nicht sicher, warum Sie Probleme mit Ihrem Code hätten. aber der obige Code funktioniert für mich einwandfrei.
Oben nach Lösungen gesucht, um die Katzen-ID eines Beitrags zu finden, aber es hat nichts funktioniert. Stattdessen wurde Folgendes verwendet:
$obj = get_queried_object();
$c_id = wp_get_post_categories($obj->ID);
$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;
}
}