Wordpress Блоги Вебмастер Lab SEO Работа и деньги Интернет Фриланс Life

Виджеты WordPress

Источник: oddstyle.ru

Виджеты служат для того, чтобы добавить сайту разнообразные функциональные возможности. Процесс управления виджетами осуществляется посредством панели администратора. Среди наиболее часто используемых виджетов можно отметить: текстовый блок, списки рубрик, последние комментарии, обновления 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>',
'after_widget' => '</div>',
'before_title' => '<div',
'after_title' => '</div>',
));
?>


21 августа 2010 года
Сколько можно заработать на своём сайте?

Комметирование закрыто.






© WordPresse.ru - Русские темы и шаблоны для WordPress 2012
Дизайн и программирование: Максим Зотов

Рейтинг@Mail.ru