пятница, 2 сентября 2011 г.

Создание областей для виджетов WordPress

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


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

Что необходимо? Конечно же представлять логику работы шаблона Word Press, знать какой файл отвечает за вывод тех или иных страниц.
За вывод одиночного поста, как правило,  отвечает файл "single.php", нам необходимо, чтобы виджет выводился именно в нем.
Итак, нам необходимо:
1. Зарегистрировать новую (нашу) область для виджета;
2. Вставить код выводящий виджет в нужное нам место в нужном файле темы.

Приступаем:
1. Регистрация зоны для виджета.
Чтобы сделать это, откройте файл functions.php вашей темы, и поместите туда следующий код:


<?php
register_sidebar( array(
'name' => 'OnSingle',
'id' => 'OnSingle',
'before_widget' => '<div id="%1$s" class="%2$s widget">',
'after_widget' => '</div>',
'before_title' => '<h3 class="widget-title">',
'after_title' => '</h3>'
) );
?>

Здесь: 

'name' => 'OnSingle', - имя новой зоны для виджета
'id' => 'OnSingle', - айди зоны для определения места вывода
 
После сохранения, в административной части появляется наша новая область для виджетов:

2. Теперь
вставляем код


<?php dynamic_sidebar( 'OnSingle' ); ?>

В нужное место файла "single.php".
Все готово. Теперь добавляем в созданную область "OnSingle" необходимый виджет.

1 комментарий: