темы wordpressОдним из важных вопросов при модификации темы WordPress, безусловно, является модификация сайдбара. Сайдбар – это боковая панель блога, или просто «боковушка».

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

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

Поскольку информация в сайдбаре представлена довольно разнородная, важным вопросом при выборе темы является возможность модификации сайдбара в соответствии с нуждами конкретного блоггера. И эта модификация по возможности должна производиться легко, то есть без необходимости написания блоков кода на PHP.

Именно эту задачу и призваны решать виджеты. Что это такое? Виджеты -это некоторые индивидуальные функциональные элементы, небольшие блоки кода, элементарные «кирпичики», которые могут легко (на уровне админ интерфейса) встраиваться в сайдбар (футер, хедер) блога для отображения определенной информации и выполнения некоторых функций.

Например, есть виджеты, отображающие последние посты. Или виджеты, выводящие внешние ссылки на ресурсы.

Есть базовые виджеты, которые доступны на блоге сразу после его установки. Есть и специализированные виджеты, которые добавляются к админпанели блога при установке специальных плагинов.

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

При этом с левой стороны страницы Вы увидите список всех используемых в данной теме виджетов. На правой стороне можно включать и исключать те или иные виджеты в том или ином сайдбаре.

Интерфейс тут довольно простой и интуитивно понятный. И Вам не составит труда скомпоновать свой сайдбар оптимальным для Вас образом.

Но это в том случае, когда тема (и версия движка) в принципе допускает использование виджетов. К сожалению, многие темы WordPress все еще не виджетизированы, и потому такой механизм не работает.

Что же отличает тему, использующую виджеты, от невиджетизированной темы? Прежде всего, следует сказать, что возможность использования виджетов заложена на уровне движка блога. То есть в принципе любая тема WordPress допускает (или не допускает) использование виджетов.

Все зависит от версии движка. В старых версиях виджеты не использовались. В более новых такая возможность, как правило, присутствует.

И если некоторая тема не настроена на использование виджетов, то такая возможность может быть к ней добавлена. Правда, для этого потребуется некоторая модификация PHP кода. К счастью, не слишком значительная.

Возможность использования виджетов в теме определяется в файле functions.php. Если там присутствуют строчки кода

if ( function_exists(‘register_sidebars’) )
register_sidebars();

то тема виджетизирована. На самом деле данный файл может содержать в себе только этот код, и ничего больше.

Таким образом, если этих строчек в файле нет, а мы хотим виджетизировать тему, то необходимо эти строчки добавить. Теперь наша тема может использовать виджеты. Но это еще не все.

Далее обратимся к файлу sidebar.php. Обычно он построен на основе использования списков, поэтому, скорее всего, мы увидим там конструкцию типа

<ul>

… код …

</ul>

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

Для этого добавляем две строчки кода:

<ul>

<?php if ( !function_exists(‘dynamic_sidebar’)
|| !dynamic_sidebar() ) : ?>

… код …

<?php endif; ?>

</ul>

Все. Теперь наша тема может использовать виджеты в сайдбаре.

Если в нашей теме два сайдбара, и мы хотим в каждом из них использовать виджеты, то потребуются небольшие изменения. А именно, в строчке кода файла functions.php надо указать количество добавляемых сайдбаров:

if ( function_exists(‘register_sidebars’) )
register_sidebars(2);

Теперь, для первого сайдбара пишем

dynamic_sidebar(1)…

а для второго –

… dynamic_sidebar(2)…

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

Если же тема устроена более сложно, и то, что Вы увидите в результате в браузере, Вам не понравится, то придется или копать глубже, или просто выбрать другую тему. Благо их в Интернете сегодня хватает.

Не пропустите следующий пост! Подпишитесь на RSS!


Стой! Сделай ретвит, пока не забыл!

Тэги:

Рубрика: Wordpress

Понравился этот пост? Подпишитесь на наш канал RSS и узнайте больше!