Pull to refresh

5 полезных и оригинальных способов использования виджетов в WordPress

Reading time5 min
Views17K
Original author: SmashingMagazine
Если вы создали хотя бы несколько сайтов на WordPress или хотя-бы читали этот пост, то вы наверняка уже знаете, что WordPress это гораздо больше, чем просто блоггинговый движок. Он может быть также использован как CMS, а виджеты WordPress — это мощный инструмент в арсенале WP-разработчика.

Многие думают, что WordPress виджеты это всего лишь способ реорганизовать структуру сайдбара вашего блога, не трогая код. Это действительно полезная способность видежтов, но это всего лишь верхушка айсберга всех возможностей, которые они предоставляют.


1. Подготовка нескольких виджет-зон


2(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


cal

Если вы не хотите чтобы одни и те же виджеты отображались одинаково на каждой отдельной странице вашего блога, вам точно пригодится плагин 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


que

Для тех, кто не в курсе, тэг шаблона query_postsявляется очень мощной функицей WordPress, с помощью которой вы можете контролировать процесс появления тех или иных постов и страниц в цикле. Но если вы предпочли бы не возится с лишним РНР кодом, но все же хотите воспользоваться преимуществами тэга query_posts, вы можете использовать виджет Query Posts для отображения контента WordPress любыми возможными способами. После установки и активации плагина, новый виджет Query Posts будет доступен в виджет-меню вашего WordPress сайта.

Что он может делать
  • отображать посты с заданным тэгом, категорией, автором, датой или любым другим параметром на ваше усмотрение;
  • отображать любое количество постов;
  • отображать посты по дате публикации, заголовку, ID; в порядке возрастания или убывания;
  • отображать посты в полном объеме, выдержками или списком;
  • показывать страницы.
Источник:

4. Шаблоны ошибки 404


2_2(1)

Множество тем 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. Размещаем рекланые блоки между постами


3(2)

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

Код

Как и в предыдущем пункте, первым шагом настройки виджета «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.phpfile вашей темы, и введите “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.

Источник:
  1. Thematic WordPress Theme

Оригинал статьи: 5 Useful And Creative Ways To Use WordPress Widgets
Перевод с сайта: WordPress для каждого!
Tags:
Hubs:
Total votes 6: ↑5 and ↓1+4
Comments6

Articles