Задача такая: есть 4 основные категории: Категория 1, Категория 2, Категория 3, Категория 4. У каждой из категорий есть подкатегории.
Нужно: Чтобы по клику на основную категорию, выводились подкатегории (это просто, переменная $cat), И(!) при переходе на подкатегорию в сайдбаре все равно отображались все подкатегории конкретной родительской категории. Аналогично, если человек просматривает запись из подкатегории – сбоку должны выводится все подкатегории основной категории первого уровня.
Примеры:
Человек перешел в раздел Категория 1 – у него отображаются все подкатегории этого раздела (если они есть).
Человек перешел в раздел Категория 1 -> Подкатегория 5 – у него так же отображаются все подкатегории раздела Категория 1, ведь Подкатегория 5 – это дочерний раздел Категории 1.
Человек перешел в запись Категория 1 -> Подкатегория 5 -> Какая-то запись – у него отображаются все подкатегории раздела Категория 1, потому что это родительская категория записи первого уровня.
Вот как реализовать такую задачу? Второй день ломаю голову, кучу статей в кодексе перечитал.
Делал похожее, но не с категориями, а со страницами. Под свои нужды затачивал плагин Sub Pages widget. Попробуйте взять его за основу, возможно поможет чем-нибудь.
Должно помочь в решении задачи
http://forum.maxsite.org/viewtopic.php?id=11135
Именно так со страницами в том же проекте проблему со страницами и решил. Но вот с категориями ступор…
Ура нашел решение сам!! Правда оно не идеально и подойдет, только если двухуровневая вложенность рубрик (мой случай). Логика скрипта основана на том, что у категорий первого уровня ИД родителя равняется 0. Т.е. если ИД равен нулю, то параметр для листинга категорий child_of ставим переменную с ИД текущей категории, в противном случае получаем ИД родительской категории.