Sie möchten die Kategorie-ID einer bestimmten Seite in WordPress abrufen, auf der alle Beiträge aufgelistet sind, die diese bestimmte Kategorie verwenden. Versuchte das unten, aber nicht funktioniert. Ich kann den Kategorienamen mit abrufen single_term_title
.
$category = single_term_title("", false);
$catid = get_cat_ID( $category );
$category
zeigt zum Beispiel "Unterhaltung" an. Ich brauche aber auch die ID "Unterhaltung". Wie würde ich das machen?
php
wordpress
wordpress-theming
categories
RonnieT
quelle
quelle
taxonomy-event-categories-entertainment.php
Antworten:
Sie können versuchen, Folgendes zu verwenden
get_the_category()
:$categories = get_the_category(); $category_id = $categories[0]->cat_ID;
quelle
$categories
Arrays.Wenn es sich um eine Kategorieseite handelt, können Sie die ID der aktuellen Kategorie abrufen, indem Sie:
$category = get_category( get_query_var( 'cat' ) ); $cat_id = $category->cat_ID;
Wenn Sie die Kategorie-ID einer bestimmten Kategorie auf einer beliebigen Seite abrufen möchten, verwenden Sie Folgendes:
$category_id = get_cat_ID('Category Name');
quelle
Der älteste, aber schnellste Weg, den Sie verwenden können, ist:
$cat_id = get_query_var('cat');
quelle
Ich verwende die Funktion get_queried_object, um die aktuelle Kategorie auf einer Vorlagenseite für category.php abzurufen.
$current_category = get_queried_object();
Jordan Eldredge hat recht, get_the_category ist hier nicht geeignet.
quelle
wp_reset_query();
auf, um die Standardinstanz WP_Query wiederherzustellen.Ich denke, einige der oben genannten Funktionen funktionieren möglicherweise, aber die Verwendung der Funktion get_the_category scheint schwierig zu sein und zu unerwarteten Ergebnissen zu führen.
Ich denke, der direkteste und einfachste Weg, auf die Katzen-ID auf einer Kategorieseite zuzugreifen, ist:
$wp_query->query_vars['cat']
Prost
quelle
Ich habe diese Frage gefunden, als ich genau nach dem gesucht habe, was Sie gestellt 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);
wurde der Kategorietitel korrekt zurückgegeben. Ich bin mir nicht sicher, warum Sie Probleme mit Ihrem Code gehabt hätten. aber der obige Code funktioniert einwandfrei für mich.quelle
Ich habe dies für Breadcrums auf der Kategorie-Vorlagenseite verwendet:
$cat_obj = $wp_query->get_queried_object(); $thiscat_id = $cat_obj->term_id; $thiscat = get_category($thiscat_id); $parentcat = get_category($thiscat->parent);
quelle
Alternative -
$catID = the_category_ID($echo=false);
BEARBEITEN: Die oben genannte Funktion ist veraltet. Bitte verwenden
get_the_category()
quelle
Wenn Sie die Kategorie-ID benötigen, erhalten Sie diese über get_query_var , mit der alle öffentlich abfragbaren Variablen abgerufen werden können.
$category_id = get_query_var('cat');
Hier ist ein Beispiel, um den Kategorienamen zu erhalten
$category_name = get_query_var('category_name');
und natürlich das mächtige get_queried_object
$queried_object = get_queried_object();
das gibt das vollständige Taxonomie-Termobjekt zurück (wenn es auf einer Taxonomie-Archivseite verwendet wird ..)
quelle
$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; } }
quelle
Oben nach Lösungen gesucht, um die Katzen-ID eines Posts zu finden, aber nichts hat funktioniert. Verwenden Sie stattdessen Folgendes:
$obj = get_queried_object(); $c_id = wp_get_post_categories($obj->ID);
quelle