Сайдбар в WordPress

Сайдбары — это вездесущий элемент дизайна, функционал которых встроен в вордпресс для удобного обслуживания. В любой теме можно вставить <?php get_sidebar(); ?> там, где вы хотите, чтобы появился сайдбар. Эта функция обратится к sidebar.php и разместит ее содержимое.

Мало одного сайдбара?

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

Эта функция вызывает файл sidebar-secondary.php

Несмотря на весь специфический функционал, сайдбары ни в коем случае не являются обязательными. Некоторые сайты прекрасно обходятся без них. Не создавайте sidebar.php и не вызывайте эту функцию.

Назначение и размещение

Сайдбары нужны для разных штучек. Вебсайты, конечно же, наполнены разными штучками. Да, есть главный контент, навигация. Но кроме этого есть еще куча разных вещей. Мы не хотим размещать это все в футере, потому что им там будет одиноко и никто их не найдет внизу сайта. Поэтому разместим их сбоку. Речь идет об альтернативной навигации, вспомогательном контенте, маленьких подписных формах, описательном тексте, рекламе, ссылках, картинках котиков и т.д..

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

Популярные функции сайдбаров

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

Список недавних записей

Возможно, дизайн вашей главной страницы подразумевает отображение только одной записи или нескольких. А вы хотите дать посетителям доступ к последним 10 опубликованных записей. Есть специальная функция для такого вывода со следующими параметрами

<?php wp_get_archives(array(
'type' => 'postbypost',  // выводить все доступные записи
'limit' => 10,  // в количестве 10 штук
'format' => 'html',  // как хтмл код
'show_post_count' => false,  // не отображать счетчик записей
'echo' => 1 // отображать список
)); ?>

Это выведет список заголовков десяти последних записей с определенными параметрами. Вы не можете вывести цитату из записи или любую другую информацию, однако при такой необходимости можно создать пользовательский цикл.

Отображение облака тегов

Если вы пометили записи тегами, то будет полезным вывести облако тегов — список используемых тегов как способ альтернативной навигации.

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

Более подробно параметры облака тегов раскрыты тут https://codex.wordpress.org/Template_Tags/wp_tag_cloud

Список категорий

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

<?php wp_list_categories(array(
'orderby' => 'name',  // упорядочить по имени
'order' => 'ASC',  // в алфавитном порядке
'show_count' => 0,  // не отображать счетчик записей
'title_li' => __('Категории'),  // включать заголовок  Категории
' exclude' => 12,  // исключая категорию с id 12
'depth' => 0  // уровень глубины отображения дерева категорий
)); ?>

Более подробно параметры списка категорий можно найти тут https://codex.wordpress.org/Template_Tags/wp_list_categories

Блогролл

В админке WordPress до версии 3.5 существовал раздел Ссылки, позволяющий добавлять ссылки на любые сайты. Такой блок ссылок называется Блогролл. Сейчас этот блок отключен за ненадобностью, но, если он вам очень нужен, то можете его активировать с помощью плагина Link Manager https://wordpress.org/plugins/link-manager/

Для вывода в сайдбаре созданного блока ссылок воспользуйтесь следующим кодом

<?php wp_list_bookmarks(array(
'orderby' => 'name', 
'order' => 'ASC', 
'limit' => -1, 
'title_li' => __('Всякие Ссылки'), 
'title_before' => '<h2>',
'title_after' => '</h2>', 
)); ?>

Полный набор параметров тут https://codex.wordpress.org/Template_Tags/wp_list_bookmarks

Редактируемый текстовый блок

Одна из вещей, которую вы, скорее всего, захотите добавить в сайдбар — это редактируемый текстовый блок, который можно править через админку вордпресс. Вот как можно это сделать:

Первый — это глобальные произвольные поля, рассматриваемые ранее. Второй — это виджеты.

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

 

Виджеты, виджеты, виджеты...

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

<div id="sidebar">
  <ul>
    <?php if (!function_exists('dynamic_sidebar') || !dynamic_sidebar()) : ?>
      <li><!-- если нет активных виджетов то вывести этот текст --></li>
    <?php endif; ?>
  </ul>
</div>

Теперь в файл functions.php добавить следующее

if (function_exists('register_sidebar')) {
register_sidebar(array(
'before_widget' => '<li id="%1$s" class="widget %2$s">',
'after_widget' => '</li>',
'before_title' => '<h2 class="widgettitle">',
'after_title' => '</h2>',
));
}

Теперь каждый виджет, который вы добавите в сайдбар, будет появлятся внутри тегов <li>, а заголовок виджета будет обрамлен тегами <h2>. Кроме этого, каждый виджет будет иметь свой уникальный ID и название class, что позволит силами CSS оформить каждый виджет по-разному под свою фантазию.

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

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

Scroll Up