Wordpress - как получить ID родительской категории? Либо другой вариант решения..

gtauter
На сайте с 08.06.2008
Offline
131
12129

Сломал моск. Вариантов много пробовал, ни один так и не заработал.

В чем суть:

Есть двухуровневое меню, например:

Программы

---Бизнес

---Редакторы

В шаблоне код:

<?php wp_list_categories('show_count=1&orderby=name&title_li=&child_of='.$cat); ?>

Как только мы заходим в подраздел "Редакторы", появляется "Нет рубрик".

Так вот, требуется в этом случае вывести категории родительской рубрики (Бизнес, Редакторы). Как? Я так понимаю, меняем $cat на ID родительской рубрики.. как его получить?

Такое же меню нужно вставить и в страницу с постом.

Версия WP последняя.. (3 с чем-то)

С уважением, Евгений. Моя визитка (gtauter.ru). Привет из "Теслы" :)
Codd
На сайте с 13.01.2011
Offline
65
#1
Я так понимаю, меняем $cat на ID родительской рубрики.. как его получить?


$cat = get_category(get_query_var('cat'),false);
$cat_parent = $cat->parent; // ID родительской категории
mgarkunov
На сайте с 23.03.2009
Offline
130
#2

if (is_category()) {
$mgCurParent = &get_term($cat,'category');
if ($mgCurParent->parent == 0) {
$mgGlobalParent = $cat;
} else {
$mgCurCatID = $cat;
do {
$mgCurParent = &get_term($mgCurCatID,'category');
$mgCurCatID = $mgCurParent->parent;
$mgGlobalParent = $mgCurParent->term_id;
} while ($mgCurParent->parent > 0);
}
}

Результат выполнения будет в $mgGlobalParent.

Подходит для получения категории самого верхнего уровня с любого уровня.

gtauter
На сайте с 08.06.2008
Offline
131
#3

Codd, спасибо!

Добавил в функции

if($output == "<li>Нет рубрик</li>") {
$cat = get_category(get_query_var('cat'),false);
$cat_parent = $cat->parent; // ID родительской категории
if ($cat_parent){
wp_list_categories('show_count=1&orderby=name&title_li=&child_of='.$cat_parent); }
$output="";
}
return $output;

Работает..

mgarkunov, спасибо! Но попробовал для записи, выводит все категории, вместо подрубрик только родительской.. Сейчас попробую разобраться.

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий