Сайдбар для виджетов WordPress

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

Добавить сайдбар для виджетов

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

Что бы добавить сайдбар, нужно в активной теме WordРres открыть файл functions.php и добавить код внутри функции widgets_init :



register_sidebar( array(
		'name'          => __( 'Front Sidebar', 'название темы' ),
		'id'            => 'sidebar-front',
		'description'   => __( 'Front sidebar that appears on the left.', 'название темы' ),
		'before_widget' => '<aside id="%1$s" class="widget %2$s">',
		'after_widget'  => '</aside>',
		'before_title'  => '<h2 itemprop="name" class="widget-title">',
		'after_title'   => '</h2>',
	) );


Пояснение кода

Дополнительный сайдбар называется Front Sidebar , в строку название темы   вставляем название активной темы. sidebar-front — это идентификатор дополнительного сайдбара. itemprop="name" — это атрибут schema.org для названия заголовка сайдбара.

Дальше нужно скопировать файл sidebar.php и переименовать в sidebar-front.php . После открываем файл sidebar-front.php и в строках is_active_sidebar( 'sidebar-1' ) и dynamic_sidebar( 'sidebar-1' ) там где sidebar-1 меняем на sidebar-front . И последнее, нужно сделать перевод на русский язык описания дополнительного сайдбара с помощью редактора Poedit .

Вывести дополнительный сайдбар

Если Вы сделали всё правильно, в админке WordPress в закладке Внешний вид > Виджеты уже должно быть поле с дополнительным сайдбаром. Как его применить зависит от ваших потребностей.

Примеры вывод дополнительного сайдбара

Cайдбар для определённых записей.

Открываем файл single.php находим строки:



<?php
get_sidebar();
get_footer();


и вставляем наш сайдбар



<?php
get_sidebar( 'front' );
get_sidebar();
get_footer();


или заменить на



<?php
if (is_single( array(id,id))):
    get_sidebar( 'front' );
else :
    get_sidebar();
endif;
    get_footer();


Пояснение кода:

array(id,id) — это массив записей с идентификаторами записей, id записей можно узнать если навести курсор на слово изменить . Цифры в ссылке и будут id записи.

  • get_sidebar( 'front' ) — это дополнительный сайдбар который будет выводится только для записей с указанным id.
  • get_sidebar() — это основной сайдбар, будет выводится для всех остальных записей.
  • get_footer() — это основной сайдбар, будет выводится абсолютно для всех записей.

Cайдбар для определённой рубрики.



<?php
if (is_category('id')):
    get_sidebar( 'front' );
else :
    get_sidebar();
endif;
    get_footer();


код для вывода дополнительного сайдбара вставляется в файл category.php


Пример вывод дополнительного сайдбара для определённого формата.



<?php
if (has_post_format( 'link' )):
    get_sidebar('front');
else :
    get_sidebar();
endif;
    get_footer();


код для вывода дополнительного сайдбара вставляется в файл taxonomy-post_format.php


Cайдбар для страницы результатов поиска.



<?php
if (is_search()):
    get_sidebar('front');
else :
    get_sidebar();
endif;
    get_footer();


код для вывода дополнительного сайдбара вставляется в файл search.php


Cайдбар для страницы с изображением.



<?php
if (wp_attachment_is_image()):
    get_sidebar('front');
else :
    get_sidebar();
endif;
    get_footer();


код для вывода дополнительного сайдбара вставляется в файл image.php


Cайдбар для страницы с метками.



<?php
if (is_tag()):
    get_sidebar('front');
else :
    get_sidebar();
endif;
    get_footer();


код для вывода дополнительного сайдбара вставляется в файл teg.php


Cайдбар для страницы.



<?php
if (is_page()):
    get_sidebar('front');
else :
    get_sidebar();
endif;
    get_footer();


код для вывода дополнительного сайдбара вставляется в файл page.php


Cайдбар для главной страницы.



<?php
if (is_home()):
    get_sidebar('front');
else :
    get_sidebar();
endif;
    get_footer();


код для вывода дополнительного сайдбара вставляется в файл index.php


Cайдбар для статической страницы.



<?php
if (is_front_page()):
    get_sidebar('front');
else :
    get_sidebar();
endif;
    get_footer();


Заключение

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

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

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

Можно использовать следующие HTML -теги и атрибуты: <a href= http://www.pixelcom.crimea.ua/"" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>