Получить информацию о текущей категории, в которой пользователь находится в данный момент category.php
Я хочу получить сведения о текущей категории, в которой находится пользователь category.php .
$category = get_the_category();
$slug = $category[0]->slug; // Why is this an array ?
В большинстве случаев (где нет подкатегорий) он возвращает массив одной длины.
Но если есть подкатегории, он (родительская категория и) возвращает массив из 2 или более.
http://domain.com/category/cat-name/ -> get_the_category() returns an array of 2
http://domain.com/category/cat-name/sub-cat-name/ -> get_the_category() returns an array of 2
3 answers
Вы используете неправильную функцию. Попробуйте:
$thiscat = $wp_query->get_queried_object();
var_dump($thiscat);
Я не знаю точно, что вы хотите сделать с этой информацией, но вы получите объект (стандартный класс) с ~15 элементами в нем. Вы должны быть в состоянии найти то, что вам нужно.
Я также понял это из следующего:
$cur_cat_id = get_cat_id(single_cat_title("",false));
$category = get_category($cur_cat_id);
Но я думаю, что решения s-ha-dum лучше.
Обычно я использую следующее для получения идентификатора категории текущего архива категорий:
$cat_id = get_query_var('cat')
Чтобы получить подробную информацию, вы можете использовать:
$cat = get_category( $cat_id )