Ко мне стали часто обращаться с вопросом: что сделать, чтобы для каждой категории выводилась уникальная боковая панель? Поэтому сегодня мы создаем уникальный sidebar для каждой категории в wordpress.
Это на самом деле не сложно. К тому же делать мы это будем не прибегая к помощи плагинов.
После прочтения этой статьи вы научитесь создавать для каждой категории свою уникальную (повторюсь) боковую панель, в которой будете размещать разные виджеты. Причем боковая панель будет создаваться автоматически при создании новой категории в блоге.
Шаг 1. Открываем файл functions.php и добавляем следующую строчку:
add_action( 'widgets_init', 'category_sidebars' ); function category_sidebars() { $categories = get_categories( array( 'hide_empty'=> 0 ) ); foreach ( $categories as $category ) { if ( 0 == $category->parent ) register_sidebar( array( 'name' => $category->cat_name, 'id' => $category->category_nicename . '-sidebar', 'description' => 'This is the ' . $category->cat_name . ' widgetized area', 'before_widget' => '<aside id="%1$s" class="widget %2$s">', 'after_widget' => '</aside>', 'before_title' => '<h3 class="widget-title">', 'after_title' => '</h3>', ) ); } }
Таким образом, мы имеем функцию, которая для каждой категории будет создавать новую боковую панель.
Не забываем сохраниться.
Шаг 2. Переходим к файлу sidebar.php, где добавляем примерно такие строки кода(надо разбираться в какое место вставлять этот код):
$sidebar_id = ( is_category() ) ? sanitize_title( get_cat_name( get_query_var( 'cat' ) ) ) . '-sidebar' : 'sidebar'; dynamic_sidebar( $sidebar_id );
Приведенный выше код будет считаться по умолчанию боковой панелью с ID категории. Если вы находитесь на странице с определенной категорией, то он будет отображать пользовательский sidebar этой категории.
Данный код дает возможность следить, какие виджеты отображаются в каждой категории, что позволяет иметь более полный контроль над конструкцией Вашего блога на WordPress.
Итак, всего за пару шагов мы создаем уникальный Sidebar для каждой категории в WordPress.
17 комментариев
Это что-то новенькое. А я замахнулась на использование шаблона Страйкинг и там есть функция ручной настройки сайд баров.
Круто! На своем WP блоге попробую эту штуку.
Фух, с первым кодом разобралась. Встал и сайт на месте остался, а второй куда вставить не пойму. Пробовала в разные места, но вообще ничего не появляется. А как это должно вообще выглядеть? Как рубрики у вас в сайдбаре или по-другому? и влияет ли на это ширина сайдбара? У меня около 160 всего лишь.
Вот код сайдбара файла. Может подскажете куда код второй вставить? И вообще подходит ли мне этот рецепт?
Наталья, уже много раз писал пользуйтесь кнопкой код.
Смысл данного хака в том, что для каждой рубрики будет создаваться свой уникальный сайдбар.
Я второй раз вставила код тут в коммент, выделила его и нажала кнопку КОД, и отправила, вот так все равно не получилось что-то нормально.
А почему не отображается в сайдбаре ничего? Я не туда вставляю или шаблон у меня не позволяет? Нельзя ли скриншот показать как визуально выглядит вся красота? Категорий то много уже есть.
все вставляется.
Скриншота нет и что там показывать, в разных рубрикой свой сайдбар.
Примерно как работает можно посмотреть тут Рукодельная мастерская. Разные сайдбары на главной и по вкладке Работы
Зашла в свои виджеты и обомлела – все там появилось. Вопрос что с ними дальше делать? Они особнячком лежат пустые в виджетах (сайдбары реально) а как их чтоб видно было сделать? Как ими пользоваться?
Интересно спасибо =)
Скажите, пожалуйста, а как сделать так, чтобы у каждого заголовка РУБРИКИ был свой цвет.
Ой, это надо что со стилями ковырять, точно и не скажу. А зачем вам такой “Геморрой”?
Вот такой код sidebar.php в какое место вставить код вывода
Попробуйте так прописать:
Ок, спасибо все работает
Рано обрадовался. Работает, если урл категории на русском написан
Какой-то глюк. После создания такого сайдбара, нужно все категории удалять и снова создавать иначе у меня не показывает сайдбар
Никак не пойму куда именно вставить код в sidebar.php