Just

Kitich

web-design

Wordpress. Ваша тема не поддерживает виджеты?

Некоторые темы Wordpress не используют виджеты — это логично. Оказывается (!), есть люди, которые живут с этим и мучаются.

Ваша тема все еще не поддерживает виджеты? Тогда мы идем к вам!

Что такое виджет?

Вы же не раз видели разные дополнительные блочки в боковой колонке любимого сайта: баннера, ссылки, опросы, прогнозы погоды. Для того, чтобы не прописывать их вручную в Wordpress используются специальные маленькие плагинчики, позволяющие добавлять, изменять, менять местами эти блоки легким движением руки. Это и есть виджеты.

Шаг 1. Включаем поддержку виджетов в теме

Откройте файл functions.php вашей темы. Добавьте в него следующий код:

if ( function_exists('register_sidebar') ) {
  register_sidebar(array(
    'before_widget' => '<li id="%1$s" class="widget %2$s">',
    'after_widget' => '</li>',
    'before_title' => '<span class="widgettitle">',
    'after_title' => '</span>',
  ));
}

Этим мы объявляем, что, если наша версия Wordpress физически способна работать с виджетами, необходимо создать панель, на которой администратор (то есть вы) сможет эти самые виджеты размещать. Также мы передаем движку, что в HTML-коде каждый блок-виджет заворачивается в пункт списка <li>, а заголовку блока присваивается CSS-класс widgettitle.

Шаг 2. Размещаем панель для виджетов

Для того, чтобы панель с виджетами отображалась на сайте, в соответствующем месте необходимо добавить код, сообщающий движку: «Эй, помнишь, мы договаривались о виджетах? — давай их сюда!». Это выглядит вот так:

<ul>
  <?php if ( !function_exists('dynamic_sidebar') || !dynamic_sidebar() ) : endif; ?>
</ul>

Если вы оформляете свои виджеты не списком, а как-то иначе, остается вообще только 2-я строка. И она может быть вставлена где угодно: в боковой колонке (предпочтительно), в «шапке», в «подвале» сайта. Скорее всего, для этого вам понадобится 1 из файлов sidebar.php, header.php, footer.php вашей темы.

Если вы немного разбираетесь в верстке, данный шаг не вызовет затруднений. Если нет — придется двигаться методом научного тыка (не забудьте предварительно скопировать файлы вашей темы, а то мало ли что).

Шаг 3. Выбираем виджеты

В админке блога заходим в раздел «Дизайн» — «Виджеты». Блок в центре экрана — это доступные виджеты, блок справа — это созданная нами панель. Выбираете нужные виджеты, перетягиваете их на панель, настраиваете каждый из них и сохраняете настройки (виджета, настройки панели сохраняются автоматически).

Со старта вам доступны стандартные виджеты, являющиеся частью движка: текстовый блок, блок ссылок, облако тегов и т.д. Для добавления новых качайте и устанавливайте на сайт соответствующие плагины.

Результат. Наслаждаемся!

Если место для отображения панели на сайте выбрано удачно — наслаждаемся. Если нет, возвращаемся к пункту 2 и переставляем код в другое место :)

Хорошо бы еще допилить напильником стили оформления и все такое, но цель-то достигнута — мы теперь виджет-совместимые!

Читать еще:
Подписаться: RSS
Поделиться: в Facebook в ЖЖ в Контакт в Twitter
Оценить: Бяка :(Няка :)
  1. Ты забыл на 2 шаге, что между ифом и ендифом могут быть блоки, которые выведутся, если нет ни одного виджета, и не выведутся, соответственно при виджетах (иф там не только для проверки на существование функции)

  2. 3.01.2011
    kitich #2 Ответить

    @Сергей М.: Это уже более продвинутый вариант :)

  3. Не, это стандартный вариант :). Тема даже с отключенными виджетами должна что-то показывать в сайдбаре (исключение — дополнительные контентные блоки)

  4. на блоге 10sea.org.ua улетела вниз боковая колонка как исправить?

  5. 30.08.2011
    kitich #5 Ответить

    Вижу, колонка уже на месте. Если такое происходит, в 99% процентах случаев проблема в ширине колонок. Т.е. суммарная ширина колонок чуть больше чем ширина отведенного под них места (окно минус отступы) — в таком случае колонка, которая не втискивается, переносится браузером ниже предыдущих.

rss.)))

Что это?