Kwork.ru - услуги фрилансеров от 500 руб.

Виджеты WordPress

Виджеты 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>',
    ));
?>

Понравилась статья? Поделиться с друзьями:
Комментарии: 1
  1. Роман

    Ааа, спасибо!

    Довольно подробная и грамотная статья.

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

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