DIW#10. Сайдбар WordPress

11.10.2012

Сайдбар Wordpress

Сегодняшняя часть цикла «DIW» посвящена сайдбару WordPress, который является важной составляющей любого сайта. WordPress достаточно хорошо умеет работать с любым количеством сайдбаров, в зависимости от вашего желания. Давайте посмотрим, как с ними работать…

Сайдбар WordPress. Добавление

Зачем вообще нужен сайдбар на сайте, а конкретно, на сайте с движком WP? Думаю, вы что-то знаете о виджетах и их добавлении. Я вижу смысл сайдбара в этом — в добавлении какой-то информации, будь то облако тегов, меню или что-то еще.

Начнем с того, как же можно зарегистрировать новый сайдбар, чтобы использовать его в шаблоне?

Для этого в файле functions.php вашего шаблона необходимо добавить вот такую функцию:

function sidebar_init() {
register_sidebar(array(
'name' => 'Footer',
'before_widget' => '<div class="footerwidget">',
 'after_widget' => '</div>',
 'before_title' => '<h4 class="foothead">',
 'after_title' => '</h4>',
 )); }

Этот код создает дополнительный сайдбар, который будет называться Footer (‘name’ => ‘Footer’), виджет будет находиться в блоке, имеющем класс footerwidget и заголовок с классом foothead. Учитывайте такой момент — в вашем шаблоне наверняка уже есть некоторое количество сайдбаров. Если это так — в вашем случае лучше добавить сайдбар по аналогии с существующим кодом.

Также очень желательно создать отдельные файлы шаблонов, для каждого из созданных сайдбаров. Обычно я просто делаю копию оригинального файла sidebar.php и меняю имя, но это не обязательно. (Почему?)

Естественно, для корректного отображения нового сайдбара — необходимо прописать стили для созданных классов. Этот момент я пропущу, сегодня речь не об этом. Просто не забывайте этот пункт, а то разные случаи бывали, даже у меня ))

Вызов и работа с сайдбаром.

В любом шаблоне WordPress вызов сайдбара выполняет вот такая функция:

<?php get_sidebar(); ?>

При этом движок запрашивает файл sidebar.php вашего шаблона(подробнее об иерархии и файлах шаблона можно почитать тут). Если же у вас несколько сайдбаров, тогда вы используете вызов сайдбара по его имени:

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

В этом случае будет показан ваш созданный сайдбар(если вы не забыли добавить в него виджеты ).


Давайте посмотрим, какие виджеты мы можем добавить в наш сайдбар, не используя плагинов. Для отображения PHP кода в сайдбаре есть специальные плагины, добавляющие свой виджет, в который можно вставлять подобные функции. Я использую WP PHP widget

<?php 
wp_get_archives(array(
 'type' => 'postbypost',      // или daily, weekly, monthly, yearly
 'limit' => 10,               // сколько категорий выводить?
 'show_post_count' => false,  // показывать количество записей?
 'echo' => 1                  // показать результаты, или вернуть массив ?
)); ?> 

Вот таким кодом можно вывести список последних 10 записей на блоге, с небольшими настройками.

<?php wp_tag_cloud(array(
'smallest' => 10,      // самый редкий тег - размер 
'largest' => 18,       // самый частый тег - размер
'unit' => 'px',        // единица измерения размера
'orderby' => 'name',   // сортировка по алфавиту
'order' => 'ASC',      // порядок сортировки
'exclude' => 6         // ID или tag, для их исключения
)); ?> 

Этот — выводит облако тегов, которое вы можете настроить для себя, в отличии от стандартного виджета.
Этот список можно продолжать очень долго и в Сети масса материала на эту тему.


Итак, теперь вы знаете, как добавить сайдбар WordPress и как его правильно использовать. В следующий раз поговорим про форму поиска — и в качестве виджета, и в качестве полноценного элемента шаблона.

А на сегодня все, удачного вам дня

, ,

Комментариев: 7

  1. Dmitry

    Интересно бы узнать, как делают неподвижные сайдбары при прокрутке, относительно основного блога. Ну или с анимацией, когда сайдбар выползает вслед за прокруткой.

    Ответить
  2. GerinG

    Remzi, не вопрос, сделаем статью Заодно еще раз просмотрю код, оптимизирую )))

    Ответить
  3. Remzi

    Жаль стили css пропусти, как раз сейчас нуждаюсь в этом.

    Ответить
    • GerinG

      Ну если интересно, могу написать, как я делал шаблон этого блога. С версткой и прочим

      Ответить
      • Remzi

        Конечно интересно, посмотреть как все делается у других.

        Ответить
  4. Neolot

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

    Ответить