Здравствуй, уважаемый друг!

Кажется, ты используешь AdBlock. Этот проект развивается и существует за счет доходов от рекламы.
Добавь, пожалуйста, нас в исключения.

Спасибо за понимание.

Теперь мы команда!

Отдельное меню для разных категорий WordPress

5 апреля 2012 в 23:25 Автор: Nikita_Sp в категории Статьи о php 2 комментария

Привет всем!

Просмотрев статистику моего сайта, я обратил внимание, что многие посетители заходят на сайт в поисках подобной статьи, но находят информацию лишь о том, как создать разный шаблон для каждой категории в WordPress, и я решил исправить ситуацию и рассказать немного о том, как можно добавить разные сайд-бары (sidebars), они же меню на наш сайт на WordPress.

Итак, пожалуй я расскажу как WP работает с файлами сайд-баров (меню).

  • Шаблоны панелей — WordPress может включить в код страницы содержимое файлов с именем sidebar-имя.php при помощи вызова в нужном месте функции get_sidebar(‘имя‘).
  • Динамические панели — WordPress так же может работать с динамическими сайд барами, которые изменяются из админки. Для них нужна функция dynamic_sidebar(‘имя‘).

Рассмотрим пример шаблонной панели. (Если вам нужно такое меню только в определенной категории — читайте сначала эту статью.) В соответствующем файле категории, в том месте, где необходимо вывести информацию из файла, добавляем следующую строку:

<?php get_sidebar('nikitasp'); ?>

Эта строка добавит весь имеющийся код из файла sidebar-nikitasp.php.
Таким образом мы добавили свой первый сайд-бар на наш сайт.

Но! Скорей всего, вам захочется редактировать его из админки, выносить туда виджеты и т.п. Для этого необходимо зарегистрировать наш sidebar (сайд-бар, меню).

Регистрируем новый сайд-бар в WordPress.
Для этого нам понадобится функция:

register_sidebar()

И в нее будем передавать следующий массив параметров:

<?php $args = array(
'name' => 'Имя сайд-бара',
'id' => 'nikitasp-sidebar',
'description' => 'New sidebar register lesson on nikita-sp.com.ua website',
'before_widget' => '<li>',
'after_widget' => '</li>,
'before_title' => '<h1>',
'after_title' => '</h1>'
));
?>

Где:

  • name — Название сайд бара.
  • id — айдишник нашего блока, написанный латиницей в нижнем регистре без пробелов.
  • description — Описание сайдбара, где он находится и т.п. (с 2.9 версии)
  • before_widget — html-код, который будет выведен перед каждым виджетом.
  • after_widget — html-код, который будет выведен после каждого виджета.
  • before_title — html-код, который будет выведен перед каждым заголовком каждого виджета.
  • after_title — html-код, который будет выведен после каждого заголовка каждого виджета.

Эту функцию нам необходимо расположить в файле functions.php. Можно сразу после <?php.
Вот какой вид имеет подобная функция:

<?php add_action( 'widgets_init', 'my_register_sidebars' );
function my_register_sidebars() {
/* Регистрируем сайд бар */
    register_sidebar(
        array(
            'name' => 'NikitaSp',
            'id' => 'nikitasp-sidebar',
            'description' => 'New sidebar register lesson on nikita-sp.com.ua website',
            'before_widget' => '<li>',
            'after_widget' => '</li>',
            before_title' => '<h1>',
            'after_title' => '</h1>'
));
    /* Копируйте и вставляйте ниже код функции register_sidebar() для добавления дополнительных сайд-баров. */
}
 
?>

И в нужном файле делаем вызов динамического sidebar следующим образом:

<?php dynamic_sidebar('nikitasp-sidebar'); ?>

Вот и все! Удачного кодинга!

2 комментария

    • Уважаемый,
      1) Использование ненормативной лексики в комментариях не приветствуется.
      2) Читайте статью, в ней подробно расписано как создать отдельное меню для разных категорий. Или вы думали что тут будет готовое решение которое нужно будет просто скопировать и продать заказчику за 100$?

      менталитет… О времена, о нравы.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Вверх!

Меню блога

Категории блога

Облако тегов