Получить информацию о текущей категории, в которой пользователь находится в данный момент 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
Author: EPQRS, 2012-12-11

3 answers

Вы используете неправильную функцию. Попробуйте:

$thiscat = $wp_query->get_queried_object();
var_dump($thiscat);

Я не знаю точно, что вы хотите сделать с этой информацией, но вы получите объект (стандартный класс) с ~15 элементами в нем. Вы должны быть в состоянии найти то, что вам нужно.

 5
Author: s_ha_dum, 2012-12-11 17:03:42

Я также понял это из следующего:

$cur_cat_id = get_cat_id(single_cat_title("",false));
$category = get_category($cur_cat_id);

Но я думаю, что решения s-ha-dum лучше.

 1
Author: EPQRS, 2012-12-12 06:29:46

Обычно я использую следующее для получения идентификатора категории текущего архива категорий:

$cat_id = get_query_var('cat')

Чтобы получить подробную информацию, вы можете использовать:

$cat = get_category( $cat_id )

Http://codex.wordpress.org/Function_Reference/get_category

 0
Author: Michael, 2012-12-11 19:16:03