Список подрубрик текущей рубрики

Нужно вывести список подрубрик текущей рубрики без родителей.
Т.е.
Украина (ua)
-Киев
-Севастополь
-Ялта
Россия
-Москва
-Питер
….

Чтобы когда человек находится в /ua/ выводились только города Украины.

Все сводится к тому, что нужно добавить в wp_list_cat child_of=ХХ, где ХХ – код подрубрики. Однако как это сделать автоматически. Т.е. в какой переменной храниться код текущей рубрики, а еще лучше массив всех родителей (если глубина большая)?

Пока писал нашел ответ –
wp_list_cats(‘sort_column=menu_order&optioncount=0&child_of=’.$cat); ?> – $cat – нужно было вынести за кавычку.

Однако нужен код самого главного родителя. Т.е. когда захожу в Киев, то города Украины пропадают.
🙁

В каком массиве это хранится или как получить такой массив?

Как узнать ID самой верхней категории?

Может это поможет:
http://wordpress.org/support/topic/73238
В этом топике решается проблема «пропажи» верхних категорий, когда находишься в подкатегории:
the problem is that as soon as you navigate deeper into the sub categories all of the cats lying above will disappear.
Напишите, если получится, тоже интересно.

Напишите, если получится, тоже интересно.

У меня получилось. Спасибо за информацию.

При этом у меня возникло одно затруднение.
Подскажите, плиз, как выполнить следующее условие: если рубрика содержить подрубрики, то вывести один код, если не содержит – другой.

Спасибо, Соника!
Итак. Вот это в файл function.php вашей темы

<?php function category_get_top_parent_id ($child = 0) {
global $wpdb;

if(is_numeric($child) && $child > 0){

$category_parent = $wpdb->get_var("SELECT category_parent FROM $wpdb->categories WHERE cat_ID =$child");

if($category_parent == 0){$result = $child;}
else{
$result = category_get_top_parent_id($category_parent);}
}
else{
$result = 0;
}
return $result;
}

– проверяем в цикле родителя текущей категории до тех пор, пока родитель не станет "0"

А это в нужное месте в шаблоне темы. Например в sidebar

$topParentID = category_get_top_parent_id($cat); ?>
<?php wp_list_cats('child_of='.$topParentID.'&hide_empty=0');?>

На базе этого решения сделал вывод нужного кода в зависимости от категории самого верхнего уровня.
Функция, которая возвращает псевдоним категории (добавить в файл function.php)

function cataa () {
global $wpdb, $cat;
$asd=category_get_top_parent_id($cat);
$cataa=$wpdb->get_var("SELECT category_nicename FROM $wpdb->categories WHERE cat_ID =$asd");
return $cataa; 
//return $asd; 
}

И функция вывода ушки в зависимости от текущей категории:

function left(){
    if(cataa()=='dozor-turnir'){
             if (function_exists('show_ushka')) show_ushka('turnir_left', '<br>');
    }elseif(cataa()=='dozor-klad'){
             if (function_exists('show_ushka')) show_ushka('klad_left', '<br>');
    }
}

в нужном месте пишем:

<?
left();
?>
Подскажите, плиз, как выполнить следующее условие: если рубрика содержить подрубрики, то вывести один код, если не содержит - другой.
function check () {
global $wpdb,$cat;
$check=$wpdb->get_var("SELECT cat_ID FROM $wpdb->categories WHERE category_parent ='$cat'");
if(!isset($check) OR $check=='') {
return "Ниче нема"; 
} else{
return $check;
}

вызываем echo check(); – вернет код рубрики

Нужно вывести список подрубрик текущей рубрики без родителей.
Т.е. 
Украина (ua)
-Киев
-Севастополь
-Ялта
Россия
-Москва
-Питер
....

Чтобы когда человек находится в /ua/ выводились только города Украины.

Все сводится к тому, что нужно добавить в wp_list_cat child_of=ХХ, где ХХ - код подрубрики. Однако как это сделать автоматически. Т.е. в какой переменной храниться код текущей рубрики, а еще лучше массив всех родителей (если глубина большая)?

Пока писал нашел ответ - 
wp_list_cats('sort_column=menu_order&optioncount=0&child_of='.$cat); ?> - $cat - нужно было вынести за кавычку. 

Однако нужен код самого главного родителя. Т.е. когда захожу в Киев, то города Украины пропадают.
:(

В каком массиве это хранится или как получить такой массив?

Всё отлично работает, но как убрать надписи "Нет рубрик" и "Рубрика", убрать li ul, и чтобы заголовки подрубрик были с описанием?

Anonymous
Отправить
Ответ на: