it-swarm.dev

Pobierz bieżący identyfikator kategorii aktywnej strony

Chcesz pobrać identyfikator kategorii konkretnej strony w WordPress, który wymienia wszystkie posty używające tej konkretnej kategorii. Próbowałem poniżej, ale nie działa. Jestem w stanie uzyskać nazwę kategorii za pomocą single_term_title.

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

$category wyświetla na przykład „Rozrywka”. Ale potrzebuję także identyfikatora „Rozrywka”. Jak bym to zrobił?

64
RonnieT

Możesz spróbować użyć get_the_category() :

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

Jeśli jest to strona kategorii, możesz uzyskać identyfikator bieżącej kategorii według:

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

Jeśli chcesz uzyskać identyfikator kategorii dowolnej kategorii na dowolnej stronie, spróbuj użyć: 

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

Najstarszym, ale najszybszym sposobem, którego możesz użyć, jest:

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

Korzystam z funkcji get_queried_object, aby uzyskać bieżącą kategorię na stronie szablonu category.php.

$current_category = get_queried_object();

Jordan Eldredge ma rację, get_the_category nie jest tutaj odpowiedni. 

16
Shaffe

Myślę, że niektóre z powyższych mogą działać, ale użycie funkcji get_the_category wydaje się trudne i może dać nieoczekiwane rezultaty.

Myślę, że najbardziej bezpośrednim i prostym sposobem uzyskania dostępu do identyfikatora kota na stronie kategorii jest:

$wp_query->query_vars['cat']

Twoje zdrowie

2
Jorge Orpinel

Alternative - 

 $catID = the_category_ID($echo=false);

EDYCJA: Powyższa funkcja jest przestarzała, użyj get_the_category()

1
Bheru Lal Lohar

Użyłem tego do bułki tartej na stronie szablonu kategorii:

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

Znalazłem to pytanie, szukając dokładnie tego, o co prosiłeś. Niestety zaakceptowałeś nieprawidłową odpowiedź. Przez wzgląd na innych ludzi, którzy próbują osiągnąć to, co próbowaliśmy osiągnąć, pomyślałem, że opublikuję poprawną odpowiedź.

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

Jak powiedziałeś single_term_title("", false); poprawnie zwracał tytuł kategorii, nie jestem pewien, dlaczego miałbyś problemy z kodem; ale powyższy kod działa dla mnie bez zarzutu.

0
Bill

Wypróbowano powyżej rozwiązania, aby znaleźć identyfikator kota dla posta, ale nic nie zadziałało, zamiast tego użyto następujących:

$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