Виджеты WordPress служат для того, чтобы добавить сайту разнообразные функциональные возможности. Процесс управления виджетами осуществляется посредством панели администратора. Среди наиболее часто используемых виджетов можно отметить: текстовый блок, списки рубрик, последние комментарии, обновления RSS и т.д. Все это составляет основу функциональности WordPress.
Грамотное применение виджетов раскрывает перед администратором безграничный горизонт новых возможностей. Виджеты идеально подходят для выполнения любых актуальных задач, позволяют взглянуть на процесс создания сайта с иной стороны. Чаще всего, конечно, виджеты применяются в зоне сайдбара, однако это совсем не значит, что другие области сайта для них закрыты. Достаточно вспомнить, к примеру, тему Notes Blog Core, в которой существует область под названием Submenu — в ней также можно размещать виджеты.
Объявление виджетов
Области для размещения виджетов определяются в файле functions.php. Для того чтобы виджеты могли в них применяться, нужно добавить код, отвечающий за отображение областей. Приведенный ниже пример демонстрирует создание виджета для сайдбара.
<?php if ( function_exists('register_sidebar') ) register_sidebar(); ?>
Затем разместим следующий код в файле sidebar.php в том месте, где нам требуется вывести виджет:
<ul id="sidebar"> <?php if ( !function_exists('dynamic_sidebar') || !dynamic_sidebar() ) : ?> <li id="about"> <h2>About this site</h2> <p>Welcome to this most excellent site!</p> </li> <li id="search"> <h2>Search</h2> <?php get_search_form(); ?> </li> <?php endif; ?> </ul>
Зона виджетов начинается со строк:
<?php if ( !function_exists('dynamic_sidebar') || !dynamic_sidebar() ) : ?>
и заканчивается:
<?php endif; ?>
Все, что расположено между этими двумя инструкциями, будет отображено лишь в том случае, когда не задано ни одного виджета. Насколько вы смогли увидеть из предыдущего примера, в зоне виджетов можно размещать как обычные HTML элементы, так и тэги шаблона.
Множественные области виджетов
Некоторые темы обладают сразу несколькими областями для виджетов. Их объявление в файле functions.php несколько отличается от объявления одиночных зон виджетов. Если вы хотите объявить две области сайдбара, область заголовка и область подвала, то сделать это можно следующим образом:
if ( function_exists('register_sidebar') ) register_sidebar(array('name'=>'Sidebar 1')); register_sidebar(array('name'=>'Sidebar 2')); register_sidebar(array('name'=>'Header')); register_sidebar(array('name'=>'Footer')); ));
Все отличие от одиночных зон заключается в том, что каждая из них имеет свое название. Соответственно, при отображении областей понадобится использовать их имена:
<?php if ( !function_exists('dynamic_sidebar') || !dynamic_sidebar('The-Widget-Area-Name') ) : ?><?php endif; ?>
Отображение подвала будет выглядеть следующим образом:
<?php if ( !function_exists('dynamic_sidebar') || !dynamic_sidebar('Footer') ) : ?><?php endif; ?>
Настройка виджетов
Не всех пользователей устраивает то, как работают виджеты в WordPress. Может быть, вы хотите, чтобы они были заключены в блоки div? Не вопрос — проблема решается путем использования файла functions.php:
<?php if ( function_exists('register_sidebar') ) register_sidebar(array( 'before_widget' => '', 'after_widget' => '', 'before_title' => '', 'after_title' => '', )); ?>
В конце строк можно видеть пустые одинарные кавычки. В них обычно заключается обертывающий код, отвечающий за какие-либо действия. Сделаем следующее: обернем виджет элементом div с классом customwidget, и добавим к нему заголовок title с классом customtitle:
<?php if ( function_exists('register_sidebar') ) register_sidebar(array( 'before_widget' => '<div class="customwidget">', 'after_widget' => '</div>', 'before_title' => '<div class="customtitle"', 'after_title' => '</div>', )); ?>
Ааа, спасибо!
Довольно подробная и грамотная статья.