Если вы создали хотя бы несколько сайтов на WordPress, то вы наверняка уже знаете, что WordPress это гораздо больше, чем просто блоггинговый движок. Он может быть также использован как CMS, а виджеты WordPress — это мощный инструмент в арсенале WP-разработчика.
Многие думают, что WordPress виджеты это всего лишь способ реорганизовать структуру сайдбара вашего блога, не трогая код. Это действительно полезная способность видежтов, но это всего лишь верхушка айсберга всех возможностей, которые они предоставляют.
1. Подготовка нескольких виджет-зон
Оснащенная виджетами тема уже давно стала обычным делом, как для пользователей, так и для разработчиков. Однако, на сегодня одной виджет-области на сайте уже недостаточно. Первым шагом по использованию виджетов на вашем WordPress сайте будет виджетирование темы, и это совсем несложно, если использовать правильный код.
Регистрация виджет-зон
Чтобы создать несколько зон, подготовленных к установке виджетов на вашем сайте, прежде всего нужно зарегистрировать их в файле functions.php вашей WP-темы. Предположим, ваша тема, состоит из трех колонок, и вы хотите два отдельных сайдбара справа и слева:
<?php
register_sidebar( array(
'name' => 'left-sidebar',
'id' => 'left-sidebar',
'before_widget' => '<div id="%1$s" class="%2$s widget">',
'after_widget' => '</div>',
'before_title' => '<h3 class="widget-title">',
'after_title' => '</h3>'
) );
register_sidebar( array(
'name' => 'right-sidebar',
'id' => 'right-sidebar',
'before_widget' => '<div id="%1$s" class="%2$s widget">',
'after_widget' => '</div>',
'before_title' => '<h3 class="widget-title">',
'after_title' => '</h3>'
) );
?>
Активация виджет-зон
Далее необходимо поместить код динамического сайдбара, собственно, в файлы сайдбара. Как правило, данные о сайдбаре находятся в файле sidebar.php, но место расположения зависит от выбранной темы. Вот необходимый код:
<?php if (!dynamic_sidebar("left-sidebar") ) : ?>
Левый сайдбар: этот текст отображается по умолчанию...
<?php endif; ?>
<?php if (!dynamic_sidebar("right-sidebar") ) : ?>
Правый сайдбар: этот текст отображается по умолчанию…
<?php endif; ?>
Код между РНР-тэгами будет отображаться, если в соответствующей виджет-области нет активных виджетов. Например, если в левом сайдбаре не используются виджеты, вы увидите текст «Левый сайдбар: этот текст отображается по умолчанию…».
2. Плагин Widget Logic
Если вы не хотите чтобы одни и те же виджеты отображались одинаково на каждой отдельной странице вашего блога, вам точно пригодится плагин Widget Logic (wordpress.org/extend/plugins/widget-logic/)
После установки плагина, в настройках каждого используемого виджета появится новое окно ввода — «Widget Logic». В этом поле, вы можете вводить тэги состояния WordPress, чтобы контролировать параметры отображения виджета.
На изображении выше, виджет «Календарь» настроен таким образом, чтобы отображаться только на странице «Evil». Но вы можете использовать и гораздо больше различных тэгов состояния:
- Отображать только на главной странице: is_home()
- Отображать только на страницах постов: is_single()
- Отображать только на страницах: is_page()
- Отображать только на страницах архива (категорий, тэгов и т.д.): is_archive()
- Отображать на страницах результата поиска: is_search()
- Отображать на всех страницах, кроме главной: !is_home()
- Отображать на странице «Advertise» или «Contact» : is_page(‘advertise’) || is_page(‘contact’)
Просто введите необходимые тэги, в зависимости от того, где должны отображаться виджеты.
3. Query Posts
Для тех, кто не в курсе, тэг шаблона query_posts является очень мощной функицей WordPress, с помощью которой вы можете контролировать процесс появления тех или иных постов и страниц в цикле. Но если вы предпочли бы не возится с лишним РНР кодом, но все же хотите воспользоваться преимуществами тэга query_posts, вы можете использовать виджет Query Posts (wordpress.org/extend/plugins/query-posts/) для отображения контента WordPress любыми возможными способами. После установки и активации плагина, новый виджет «Query Posts» будет доступен в виджет-меню вашего WordPress сайта.
Что он может делать
- отображать посты с заданным тэгом, категорией, автором, датой или любым другим параметром на ваше усмотрение;
- отображать любое количество постов;
- отображать посты по дате публикации, заголовку, ID; в порядке возрастания или убывания;
- отображать посты в полном объеме, выдержками или списком;
- показывать страницы.
4. Шаблоны ошибки 404
Множество тем WordPress, включая тему, идущую по умолчанию, не могут похвастаться выбором интересных и полезных щаблонов ошибки 404. К примеру, если вы попадете на страницу этой ошибки на сайте с дефолтовой темой WordPress, вас поприветствуют сообщением «Error 404 — Not Found», вот и все. Существует большое количество виджетов, которые помогут придать странице 404-й ошибки изюминку, и сделать ее более полезной для посетителей, которые ищут контент. Среди них — виджеты «Recent Posts,» «Categories» и «Archives».
Первый шаг: зарегистрируйте виджет-зону в WordPress. Чтобы сделать это, откройте файл functions.php вашей темы, и поместите туда следующий код:
<?php
register_sidebar( array(
'name' => '404',
'id' => '404',
'before_widget' => '<div id="%1$s" class="%2$s widget">',
'after_widget' => '</div>',
'before_title' => '<h3 class="widget-title">',
'after_title' => '</h3>'
) );
?>
Теперь, когда виджет зарегистрирован, вам нужно будет отредактировать файл 404.php, добавив туда этот код:
<?php dynamic_sidebar( '404' ); ?>
Это все. Теперь вы можете вставить в виджет-зону «404» любые виджеты, и они будут отображаться каждый раз, как посетитель попадает на страницу 404-й ошибки. Оснастите ее такими полезными вещами, как поле поиска, список недавних постов или категорий, или может быть, несколько списков Query Post.
5. Размещаем рекланые блоки между постами
Вы можете добавить в вашу тему код, который позволит вставлять виджет через определенное количество постов. Многие люди используют это для вставки контекстной рекламы или баннеров, но на самом деле, количество вариантов использования этого виджета безгранично.
Как и в предыдущем пункте, первым шагом настройки виджета «Index Insert» будет регистрация виджет-области для него. Откройте файл functions.php и вставьте следующий код:
<?php
register_sidebar( array(
'name' => 'index-insert',
'id' => 'index-insert',
'before_widget' => '<div id="%1$s" class="%2$s widget">',
'after_widget' => '</div>',
'before_title' => '<h3 class="widget-title">',
'after_title' => '</h3>'
) );
?>
Чтобы разместить его на главной странице, откройте файл index.php вашей темы, и введите «endwhile» в конце, а затем вставьте следующий код прямо над ним, чтобы все выглядело так:
<?php if ($count==2) { ?>
<?php dynamic_sidebar('index-insert') ?>
<?php } ?>
<?php $count = $count + 1; ?>
<?php endwhile; ?>
Приведенный выше код вставит виджет-зону «index-insert» сразу после второго поста. Вы можете изменить $count==2 указав номер поста, после которого вы хотите отобразить виджет-зону. Если вы хотите, чтобы ваши баннеры отображались между архивными списками, например, на страницах категорий или тэгов, вы можете вставить указанный выше код в другие файлы, включая archive.php, category.php и tag.php. Вы даже можете контролировать, на каких страницах будут отображаться те или иные рекламные блоки, используя тэги состояния, например is_archive(), is_category() и is_tag(), в плагине Widget Logic.
h++p://wp-config.ru/featured/5-poleznyx-sposobov-ispolzovaniya-widgetov-wordpress/
Оставьте первый комментарий