Получение объекта категории на странице категории

25 янв. 2011 г., 13:00:48
Просмотры: 19.2K
Голосов: 7

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

Я внимательно изучил кодекс WordPress, но без особого успеха. Помните - мне нужно получить не категории поста, а объект текущей категории.

Спасибо большое, Бен :-)

1
Комментарии

Вам следует проголосовать за ответ Фернандо и отметить его как решение

kaiser kaiser
25 янв. 2011 г. 18:36:12
Все ответы на вопрос 5
1
15

Чёрт, так я всё-таки нашёл ответ, который искал:

$thisCat = get_category(get_query_var('cat'),false);

Неважно :-)

25 янв. 2011 г. 13:07:38
Комментарии

Это должен быть принятый ответ!

aletede91 aletede91
2 мар. 2017 г. 13:54:45
0

$wp_query->get_queried_object() — это очень универсальная функция. Она возвращает текущую категорию, метку (тег), термин произвольной таксономии, автора, страницу или запись в зависимости от того, какую страницу или архив вы просматриваете. Особенно полезна, если вы хотите упростить заголовки архивов.

26 янв. 2011 г. 16:54:10
2

Чтобы получить объект категории, используйте get_category (документация). Это легко, если вы знаете название, ярлык (slug) или ID категории. Но если вы их не знаете, можно воспользоваться функцией is_category для определения текущей категории и передать её ID в get_category.

25 янв. 2011 г. 13:11:39
Комментарии

Это на самом деле не имеет смысла. Фактически, это единственный ответ, который НЕ является правильным. Автор хотел способ получить объект категории. Функция is_category не "проверяет, на какой категории вы находитесь" - она говорит вам, находитесь ли вы на странице категории. Если у вас есть ID, то да, вы можете использовать get_category(), но я предполагаю, что автор использовал ID=4 просто как произвольный пример, и на самом деле не знал заранее ID категории, которую хотел запросить.

Tom Auger Tom Auger
2 июн. 2011 г. 03:02:00

Это неверный ответ...! Как ты и написал, Том.

jepser jepser
22 мая 2012 г. 21:41:36
0

Я бы рекомендовал привыкнуть использовать функции get_term или get_terms, так как функции для работы с категориями являются лишь обёртками, которые в конечном итоге вызывают get_term(s).

<?php 
$queried_category = get_term( get_query_var('cat'), 'category' ); 

// echo $queried_category->term_id; // ID категории
// echo $queried_category->slug; // Ярлык (slug) категории
// echo $queried_category->name; // Название категории 
// echo $queried_category->description; // Описание категории 
?> 

Освоение функций для работы с терминами упростит работу с пользовательскими таксономиями, так как в таких случаях вам придётся использовать именно эти функции.

http://codex.wordpress.org/Function_Reference/get_term
http://codex.wordpress.org/Function_Reference/get_terms

И ещё одна функция, которая редко используется, но может быть очень полезной:
http://codex.wordpress.org/Function_Reference/get_term_by
Она позволяет получить объект термина по его названию, ярлыку или ID.

26 янв. 2011 г. 16:16:48
1

Интересный случай, когда одна из многих архивных страниц категорий, включенных в пользовательское меню, возвращала пустой массив для

get_the_category();

потребовал от меня перепробовать все возможные способы решения проблемы (без каламбура).

is_category() ВОЗВРАЩАЕТ true
get_the_category() ВОЗВРАЩАЕТ пустой массив
the_category() ВОЗВРАЩАЕТ NULL

В итоге правильным решением оказался вариант от Бена Эверарда

get_category(get_query_var('cat'), false) ВОЗВРАЩАЕТ корректный объект WPCategory

Спасибо!

14 янв. 2013 г. 20:57:33
Комментарии

на самом деле, ответ @JanFabry — это тот, который должен быть помечен как "правильный" — get_queried_object(), гораздо проще и предпочтительный метод.

Milo Milo
14 янв. 2013 г. 21:38:45