Создание зон для виджетов
Многие привыкли только к одной области под виджеты. Но одной области уже недостаточно, поэтому мы рассмотрим простой способ создания нескольких зон для виджетов. А для этого нужно зарегистрировать данные области в уже известном нам файле functions.php.
Рассмотрим пример, когда нужно создать два сайдбара слева и справа:
<?php
register_sidebar( array(
‘name’ => ‘left-sidebar’,
‘id’ => ‘left-sidebar’,
‘before_widget’ => ‘<div id=”%1$s”>’,
‘after_widget’ => ‘</div>’,
‘before_title’ => ‘<h3>’,
‘after_title’ => ‘</h3>’
) );
register_sidebar( array(
‘name’ => ‘right-sidebar’,
‘id’ => ‘right-sidebar’,
‘before_widget’ => ‘<div id=”%1$s”>’,
‘after_widget’ => ‘</div>’,
‘before_title’ => ‘<h3>’,
‘after_title’ => ‘</h3>’
) );
?>
Но это только начало, ведь виджеты нужно будет еще и активировать. Для этого необходимо разместить динамичный код сайдбара в файле sidebar.php или в другом файле, что зависит от текущей темы:
<?php if (!dynamic_sidebar(“left-sidebar”) ) : ?>
Default left sidebar stuff here…
<?php endif; ?>
<?php if (!dynamic_sidebar(“right-sidebar”) ) : ?>
Default right sidebar stuff here…
<?php endif; ?>
PHP-код между тегами будет отображаться, если в соответствующей области не будет использовано никаких виджетов.
Разные виджеты на каждой странице
Изначально все виджеты выглядят одинаково на разных страницах, но воспользовавшись Widget Logic ситуацию можно изменить: в блоки опций каждого виджета появится поле ввода данного плагина. В это поле можно ввести набор тегов, позволяющих управлять виджетами. Попробуем ввести в этих полях нечто подобное:
- Показывать только на главной странице: is_home()
- Показывать только на страницах отдельных постов: is_single()
- Показывать только на страницах: is_page()
- Показывать на страницах архива (категория, тег, и т.д.) is_archive()
- Показывать на страницах результатов поиска: is_search()
- Показывать на всех страницах кроме главной: !is_home()
- Показывать на странице “Advertise” или “Contact” : is_page(‘advertise’) || is_page(‘contact’)
Этим вы сможете менять расположение виджетов…
Продолжение в уроке 34.2.