Меню с подрубриками этой рубрики

Здравствуйте, столкнулся с такой проблемой.
Есть (Главная страница) и две основные рубрики (Энциклопедия) (Библиотека), в основных рубриках есть свои подрубрики.
Суть вопроса в следующем, мне нужно что бы на главной странице слева было меню в котором 2 пункта (Энциклопедия) и (Библиотека), если зайти в рубрику (Энциклопедия), то слева должно появиться меню со всеми подрубриками этой рубрики, и соответственно если зайти в (Библиотека) то должно появиться новое меню с подрубриками этой рубрики.
Пока выходит только, показывать все меню, а как прятать меню если находишься в разных рубриках.

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

  1. То есть вам нужно сделать, чтобы выполнялись условия:
    1. если это главная страница, то в сайдбаре выводятся только рубрики, без подрубрик
    2. если это архив какой-то рубрики, то в сайдбаре выводится данная рубрика с подрубриками
    Правильно я понимаю?
    Например, у вас есть две категории, у первой ID=1, у второй ID=2. В первой категории есть подкатегории с ID 3, 5, 7, во второй категории есть подкатегории 4, 6, 8.
    Вывести список всех главных рубрик без подрубрик можно так:

    < ?php wp_list_categories('orderby=name&show_count=1&hierarchical=1&depth=1'); ?>

    Вывести список рубрик со всеми подрубриками можно так:

    < ?php wp_list_categories('orderby=name&show_count=1&hierarchical=1&depth=0'); ?>

    За отображение подрубрик отвечает параметр depth.
    Создадим три кода с разными условиями.
    Для вывода в сайдбаре на главной странице главных рубрик без подрубрик нужно использовать примерно такой код:

    < ?php if (is_home())
    {
    echo '  ';
    }
    ?>

    Для вывода в сайдбаре названия категории 1 с подкатегориями 3, 5, 7 добавим такой код:

    < ?php if (is_category('1'))
    {
    echo ' / ';
    }
    ?>

    2, 4, 6, 8 – ID категорий, которые нужно исключить.
    То же самое проделываем и со второй категорией, только с точностью до наоборот:

    < ?php if (is_category('2'))
    {
    echo ' / ';
    }
    ?>

    Подробнее о wp list categories: http://codex.wordpress.org/Template_Tags/wp_list_categories
    Подробнее о is_category и is_home: http://codex.wordpress.org/Conditional_Tags

    • Установил плагин Navigation Manager
      В нём сделал 3 меню, 1-(главная и 2 рубрики) 2-(все подрубрики Энциклопедии) 3-(все подрубрики Библиотеки)
      Затем в сайд бар добавил код, там сначала проверка идёт в какой рубрике мы щас находимся и проверка, находимся ли мы на главной странице.

    • Главное меню

      • < ?php if(function_exists('wp_navigation')){ wp_navigation('title_li=&group=1&echo=1'); } ?>
    • < ?php global $is_home; if ($is_home) {} else {if ( in_category('enciklopediya')) { ?>
    • Энциклопедия

      • < ?php if(function_exists('wp_navigation')){ wp_navigation('title_li=&group=2&echo=1'); } ?>
    • < ?php } else { ?> < ?php }} ?> < ?php if ($is_home) {} else {if ( in_category('biblioteka') ) { ?>
    • Библиотека

      • < ?php if(function_exists('wp_navigation')){ wp_navigation('title_li=&group=3&echo=1'); } ?>
    • < ?php } else { ?> < ?php }} ?>
    • а ещё вопрос, как можно добавить цифру справа от раздела в сайдбаре, которая будет показывать сколько постов есть в этом разделе.

      • Если используете функцию wp list categories (см. мой ответ выше), то за вывод количества постов в рубрике отвечает параметр show_count=1.

  2. как в отображаемый список добавить посты находящиеся в под рубрике и убрать название самой рубрики

  3. Всё ясненько. Этот пост натолкнул меня на идею, и я почему то был уверен,что именно тут найду ответ,здесь немного предоставлены кривые коды,поэтому если надо вот такое решение: Выводить на главной список рубрик, а по переходу в определённую рубрику,видить лишь её подкатегории,то код такой:

    < ?php if (is_home()): ?> 
    < ?php echo wp_list_categories("orderby=name&title_li&show_count=0&hide_empty=0&hierarchical=1&depth=1"); ?> 
    < ?php endif; ?>
    
    < ?php if (is_category('')): ?> 
    < ?php $args = array(
    	'orderby'            => 'name',
    	'title_li'           => __( '' ),
    	'show_count'         => 0,
    	'hide_empty'         => 0,
    	'child_of'           => $cat,
    	'depth'              => 1,
    ); ?>
    < ?php echo wp_list_categories($args) ?>                           
    < ?php endif; ?>

    Вставляете в любое место шаблона,обычно это header,ну и оборачиваете каким нибудь стилем

    По аргументам можно почитать тут http://codex.wordpress.org/Template_Tags/wp_list_categories#Include_or_Exclude_Categories

Оставить комментарий

Ваш электронный адрес не будет опубликован.


*