Получить идентификатор текущей категории активной страницы

Посмотрите, чтобы вытащить идентификатор категории на определенную страницу в WordPress, в которой перечислены все сообщения, использующие эту определенную категорию. Пробовал ниже, но не работал. Я могу получить название категории, используя single_term_title .

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

Например, $category отображает «Развлечения». Но мне также нужен идентификатор «Развлечения». Как я могу это сделать?

Вы можете попробовать использовать get_the_category() :

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

Если это страница категории, вы можете получить идентификатор текущей категории:

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

Если вы хотите получить идентификатор категории какой-либо конкретной категории на любой странице, попробуйте использовать:

 $category_id = get_cat_ID('Category Name'); 

Самый старый, но самый быстрый способ, которым вы можете воспользоваться:

 $cat_id = get_query_var('cat'); 

Я использую функцию get_queried_object, чтобы получить текущую категорию на странице шаблона category.php.

 $current_category = get_queried_object(); 

Jordan Eldredge прав, get_the_category здесь не подходит.

Я думаю, что некоторые из вышеперечисленных могут работать, но использование функции get_the_category кажется сложным и может дать неожиданные результаты.

Я думаю, что самый прямой и простой способ доступа к кошачьему идентификатору на странице категории:

 $wp_query->query_vars['cat'] 

ура

Я использовал это для breadcrums на странице шаблона категории:

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

Альтернатива –

  $catID = the_category_ID($echo=false); 

EDIT: выше функция устарела, пожалуйста, используйте get_the_category()

Я нашел этот вопрос, ища именно то, что вы просили. К сожалению, вы приняли неверный ответ. Ради других людей, которые пытаются достичь того, чего мы пытаемся достичь, я думал, что отправлю правильный ответ.

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

Как вы сказали single_term_title("", false); правильно вернул название категории, я не уверен, почему у вас были бы проблемы с вашим кодом; но приведенный выше код работает безупречно для меня.

 $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; } }