How to design a variable sidebar WordPress theme with widgets (by guest blogger Daria Black)
This post is by a guest blogger.
Daria Black is a freelance writer and web designer. Visit her website Webernet Architect located at for information and tutorials on web design, blogging, social networking and a general guide to having fun on the internet. To learn more about Daria visit her personal weblog at Lexicon Indigo.
When I first heard of WordPress widgets, I was appropriately disgruntled. ‘Widgets? We don’t need no stinking Widgets,’ I grumbled. I was resistant towards the notion of widgetizing my themes because it meant having to change my style of design from using divs to separate the content in my sidebar to placing everything in an unordered list.
But when I saw how they make the end user’s life a little bit easier and how they can make an already powerful content management system even better, I can’t praise the creators of the Widgets plugin enough. So to show you just how creative one can be with the plugin, I’m going to share with you a way to create a template where you can have different widgets on each of your template’s page views; the index, single post and Pages.
This tutorial assumes you have a basic understanding of WordPress themes and prefers that you know a little bit about PHP as well. However, knowing how to follow directions and cut and paste is just as good.
It all starts with having the correct template files
In addition to having your basic index.php file you will also need a page.php, single.php and three sidebar.php files which we will appropriately name sidebar.php, singlesidebar.php and pagesidebar.php.
The way WordPress works is that when a post is called it will display it according to what is available in the template hierarchy. According to the Codex when a page is called, if it is a post, the software will first look for the category specific template file (either category-x.php or category.php), then a single post template file (single.php) and if it can find none of those, then it will use the index.php file as its default. If it is a Page that is being called for, then the software will look for the page.php file before using the index.php as the default. The reason for this is to offer the maximum level of customization available for your WordPress installation.
All templates have an index.php file and most have a sidebar.php file. Some even come with already customized single.php and page.php file. If your template does not come with these additional files and you don’t have the first clue as to how to make them don’t worry, I won’t leave you hanging like that. All you have to do is copy and rename the index.php and sidebar.php files.
Now we need to partner up the sidebars with their appropriate template file. Pair the index.php with the sidebar.php file by adding
<?php get_sidebar(); ?>
wherever you want it to appear in your template. If you are working off of someone else’s template than that should already be setup for you.
Put the single.php file with the singlesidebar.php file by adding (or overwriting <?php get_sidebar(); ?>) with:
<?php include(TEMPLATEPATH . '/singlesidebar.php'); ?>
This tells WordPress to use the singlesidebar.php file instead of the default sidebar.php file. Do the same with the page.php file and pagesidebar.php except substitute singlesidebar.php with pagesidebar.php.
Stir in the proper Widget technology
The Widgets code uses a file called functions.php to control the number of sidebars you need, their names and their CSS markup. For the Widgets plugin to work properly, at the very minimum, you must register your sidebar(s) using this file.
There are two ways you can go about doing this. The easiest way is to open up the text editor of your choice, add the following code and save the file as functions.php:
<?php
if ( function_exists('register_sidebar') )
register_sidebar(3);?>
This code tells the Widgets plugin that we need some dynamic sidebars, three to be exact. This will display 3 sidebars in the Sidebar Widgets area of your dashboard appropriately named Sidebar-1, Sidebar-2 and Sidebar-3. This is fine and dandy if you’re template is for personal use and you can remember which sidebar goes with which file. However if you are designing for other people or are like me and suffer from CRS (Can’t Remember Stuff) then you may want to think about giving your sidebars unique names. In this case you will need to edit the code slightly to get this desired effect.
<?php
if ( function_exists('register_sidebar') ){
register_sidebar(array('name'=>'ESSidebar'));register_sidebar(array('name'=>'ESSinglepost'));
register_sidebar(array('name'=>'ESPages'));
}
?>
Basically with this code you are registering each sidebar individually with its associated name. It can be any name you want, however you might want to pick something unique to the template. The Widgets plugin has the capability of saving widget schemes on a per template basis but that is only if the sidebar names are unique. Otherwise the information will be overwritten by the new sidebar widget scheme if it has the same name.
In this example, my sidebar names correspond to the template they belong to which is called Experimental Silver. ESSidebar goes to the index.php file, ESSinglepost goes with the single.php file and ESPage goes with the page.php file.
Add a dash of code
As I mentioned before, your sidebar should be set up as an unordered list. This is the default HTML coding for the Widgets plugin. If yours isn’t that’s okay. Just read up at the Automattic website on how to change the functions.php file to account for how your sidebar is designed.
Open up the pagesidebar.php file and add the following code just underneath the < ul > tag:
<?php if ( function_exists('dynamic_sidebar') && dynamic_sidebar(ESPages) ) : elseif ( function_exists('dynamic_sidebar') && dynamic_sidebar(ESSidebar) ): else : ?>
What this is telling WordPress is that if the Widget plugin has been activated and widgets are set for this sidebar (ESPages) then show the dynamic sidebar and its associated widgets otherwise if the Widgets plugin is turned on but there are no widgets for this sidebar then show the default dynamic sidebar setup for the index file (ESSidebar). If widgets are turned off and/or there are no widgets for the page sidebar or the default sidebar then just show the code setup in the pagesidebar.php file.
Be sure to overwrite the sidebar names with the custom names you created in the functions.php file. If you used the default setting then you must use numbers. Remember before when I said that the plugin will automatically name your sidebars Sidebar-1, Sidebar-2 and Sidebar-3 if you didn’t tell it any differently? Well those numbers are what you would use as the dynamic_sidebar designation here. So instead of dynamic_sidebar(ESPages) it would be dynamic_sidebar(1) and so on. Add the same code to your singlesidebar.php file (except update with the singlesidebar name or number).
Since the sidebar.php file is the default file, all you need to add to the file is this:
<?php if ( function_exists('dynamic_sidebar') && dynamic_sidebar(ESSidebar) ) : else : ?>
It just says that if Widgets are enabled and there are widgets for this sidebar then show the dynamic sidebar otherwise show the code in the sidebar.php file.
Just before the ending < /ul > tag add the following code:
<?php endif; ?>
This is necessary to end the PHP statement and prevent errors.
Upload and test
Upload the template files to the appropriate directory and make sure the Widgets plugin is turned on. Set up a few widgets and then navigate around to the different page views. If all goes well then you should see the different widgets on the different page views.
If all doesn’t go well and you are not seeing the desired effect, be sure to go back and check your code. Make sure the names are in the appropriate places, that they are written in your sidebar code exactly as you have them in your functions.php file (yes capitalization matters) and that you actually have widgets set for each of the sidebars. If all else fails, feel free to contact me and I will assist you.
And there you have it. One of the many things you can do with WordPress and widgets. Happy web designing!
You can find more stuff by Daria at Webernet Architect and Lexicon Indigo including her theme Experimental Black.

[...] Read the full tutorial… Topic: Tutorials, Web Design | 200 words | April 9, 2007 Leave a comment | Link to this [...]
[...] Learn how to design a variable sidebar wordpress theme with widgets by engtech [...]
I swear I’ve read this before. It sounds very familiar.
Hi Elaine,
Where have you read this article before? I haven’t published it anywhere else except for Engtech and I have a short paragraph on my own website with a link pointing back to this article. :)
Thanks for the info, just what I needed to know.
I am trying something no your theory of
“The Widgets plugin has the capability of saving widget schemes on a per template basis but that is only if the sidebar names are unique. Otherwise the information will be overwritten by the new sidebar widget scheme if it has the same name”
I have duplicated a theme, and changed the name of the sidebars in each of the functions.php by using your
register_sidebar(array(‘name’=>’ESPages’));
code, and the sidebar names register in the wigdets manager, but doesnt save them seperately when I switch themes?
Cheers
psiloceratan kerasin outsharpen baruria anoplotherioid handsaw cleidotripsy representative
Northern Iowa Team Page – CBS.SportsLine.com
http://www.cottonwoodfdn.org
hi, thanks for the article. :)
it helped me to solve my problem in creating sidebar from scratch… :)
[...] How to design a variable sidebar WordPress theme with widgets (by guest blogger Daria Black) [...]
Thank you for this information. :)
Tried to do this with at least five other tutorials. Yours was the first that worked. Thank you so much. :)
FyopwV hi! nice site!
Привет, статья интересная и я тоже процитирую у себя в блоге
I dont usually reply to posts but I will in this case. Ive been experiencing this very same problem with a new WordPress installation of mine. Ive spent weeks calibrating and getting it ready when all of a sudden I cannot delete any content. Its a workaround that, although isnt perfect, does the trick so thanks! I really hope this problem gets solved properly asap.
Nice post! GA is also my biggest earning. However, itffff92s not a much.
Keep working ,great job!
решил помочь и разослал пост в соц. Закладки. Надеюсь поднимется популярность
Очень понравилось, даже не ожидала.
[...] How to design a variable sidebar WordPress theme with widgets [...]
Скажите, а у вас есть RSS поток в этом блоге?
Огромное вам пасибо! а еще посты на эту тему будут в будущем? Очень жду!
Я бы сказала о монументальности, грандиозности некоторых сюжетов. А назвала бы – “нефильтрованный реал”. На мой взгляд, красота – это все-таки другое: лучшее, чистое, избранное, заставляющее трепетать и поражаться. Можно найти красоту во всем, но всё скопом – не есть красота. Имхо.
Статья просто суперская! Братцы, задумайтесь
Я в принципе, мало, что смыслю в этм посте, но постараюсь все таки понять.
Спасибо за статью.. Актуально мне сейчас.. Взяла себе еще перечитать.
Спасибо. Просто спасибо, за красивые мысли вслух. В цитатник.
Написать пост на пол страницы время есть, а ответить нет? Нормально
Да уж. В этом блоге хоть комментаторы нормальные.. А то пишут обычно в комментарии ерунду всякую.
Опубликовал на своем блоге вашу статью, и напечатол там конечно-же обратную ссылку на вас. Но вот зашел посмотреть поевился ли трекбек, а его нет…
Ценные рекомендации, беру на заметку
Сугубо мое имхо – ты не можешь определиться с выбором. Удачи, подумай над этим.
Опутеть как интересно, во задвигаете. Класс!
отличный дизайн )
На Ваш блог знакомый в аську ссылку кинул. Оказалось ,что не зря Понравилось. Тепрь постоянно читать буду
Классно, вещь полезная!
Ваш сайт в опере не очень то корректо показывается, а так все отлично! спасибки вам за умные мысли!
Интересно и позновательно, а будет еще что-то по этой теме?
Прочитал с большим интересом, очень интересая история. Начинаю себя вспоминать, у меня все так же начиналось
Спасибо мне очень понравился ваш блог и я обещаю заходить еще
Классная статья, кстати автору хочу предложить установить от яндекс.денег фишку на сайт “Дай рубль”. Я бы дал, так сказать на поддержание.
Неплохой пост, но много лишнего.
Огромное вам человеческое спасибо, очень актуальная заметка.
а вот вопросик можно? У вас время после поста указано. Это московское? Заранее спасибо!
Все-же на самом деле нравится мне Ваш блог. Постоянно совсем любопытно читать, включая эту тЁму.
Шик и блеск! Неподражаемо
Интересно, а почему так редко блог обновляете?
Оооо! Вот это в точку сказано. Люблю, когда все к месту и при этом понятно для простого смертного.
Да таков наш современный мир и боюсь с этим ни что нереально поделоть:)
Добавил в свои закладки. Теперь буду вас намного почаще читать!
Да, похоже что в действительности – так оно и есть. P.S. Сайт, кстати, у вас прикольно сверстан
Спамибо, не ожидал такого ну просто никак
Спасибо, не ожидал такого ну просто никак
Да пребудет со мною любовь и вино!
Будь, что будет: безумье, позор – всё равно!
Чему быть суждено – неминуемо будет,
Но не больше того, чему быть суждено.
Очень понравилось, даже не ожидала.
а вот вопросик можно? У вас время после поста указано. Это московское? Заранее спасибо!
Интересная статья
Чёрт возьми! Круто!Вы Сами ответили.Беру в цитник! Смысл жизни и всё остальное. Решено.Без шуток.
Интересно
Огромное вам человеческое спасибо, очень актуальная заметка.
Да уж. В этом блоге хоть комментаторы нормальные.. А то пишут обычно в комментарии ерунду всякую.
Мне понравилось
Спасибо вам за сайт, очень полезный ресурс, мне очень нравится
Если мельницу, баню, роскошный дворец
Получает в подарок дурак и подлец,
А достойный идёт в кабалу из-за хлеба –
Мне плевать на твою справедливость, творец!
Не меняются только самые мудрые и самые глупые.
Спасибо огромное. Почитал и понравилось. Картинок бы ещё
Очень хороший пост! Спасибо за проделанную работу!
Мысль не новая, но изложено интересно. Я с Ваашего позволения процитирую у себя в блоге.
Должен признать, тот кто писал ништяк накропал.
Добавил в свои закладки. Теперь буду вас намного почаще читать!
Благодарю!!!У Вас часто появляются очень интересные посты! Очень поднимаете мое настроение.
Как обычно, вебмастер грамотно опубликовал!
как сказал один очень умный и известный человек ) …
Не завидуй тому, кто силён и богат.
За рассветом всегда наступает закат.
С этой жизнью короткою, равною вздоху,
Обращайся, как с данной тебе напрокат.
как сказал один очень умный человек которого мы все хорошо знаем )
Чтоб мудро жизнь прожить, знать надобно немало,
Два важных правила запомни для начала:
Ты лучше голодай, чем что попало есть,
И лучше будь один, чем вместе с кем попало.
попробую сделать тоже самое в своем блоге
Хорошо пишете. Надеюсь, когда-нибудь увижу нечто подобное и на своем блоге…
Интересная тема, Спасибо!
Я бы сказала о монументальности, грандиозности некоторых сюжетов. А назвала бы – “нефильтрованный реал”. На мой взгляд, красота – это все-таки другое: лучшее, чистое, избранное, заставляющее трепетать и поражаться. Можно найти красоту во всем, но всё скопом – не есть красота. Имхо.
Чего и следовало ожидать, написавший нетипично отжег!
Огромное вам человеческое спасибо, очень актуальная заметка.
Ага, теперь понятно…А то я сразу не очень то и не понял где тут связь с самим заголовком…
Автор, ты долго вот такой текст сочинял? Жутко любопытно….
Ваш сайт в опере не очень то корректо показывается, а так все отлично! спасибки вам за умные мысли!
Да, похоже что в действительности – так оно и есть. P.S. Сайт, кстати, у вас прикольно сверстан
Должен признать, вебмастер зачетно накропал.
большое спасибо!Взяла себе тоже-пригодится.
Очень понравилось, даже не ожидала.
Отличная статья Спасибо огромное
Спасибо за статью.. Актуально мне сейчас.. Взяла себе еще перечитать.
Классная статья, кстати автору хочу предложить установить от яндекс.денег фишку на сайт “Дай рубль”. Я бы дал, так сказать на поддержание.
По моему у Вас украли эту статью и поместили на другом сайте. Я её уже видела.
Отлично написано! Буду много думать…
Автор выйди к напроду, вопросы есть!
Веселье, много юмора и смех на ресурсе sms розыгрышей. Отправь sms розыгрышь на Билайн. Розыграй знакомых, отшли sms розыгрыш с нашего сайта.
По правде говоря, сначала не очень то до конца понял, но перечитав второй раз дошло – спасибо!
Интересно, а почему так редко блог обновляете?
Неплохой пост, но много лишнего.
Честно, неплохая новость
Добавил в свои закладки. Теперь буду вас намного почаще читать!
Отличная статья.Респект автору.
Non annumero verba sed appendere
Вот решил вам немного помочь и послал этот пост в социальные закладки. Очень надеюсь ваш рейтинг возрастет.
Отправила первый пост, а он не опубликовался. Пишу второй. Это я, туристка африканских стран
В нашем интернет-магазине вы найдете HDD плееры, корпуса, MP3 плееры. Последние новинки в области Flash накопителей, коммуникаторов, HDD плееров и мобильных телефонов.
Добавил в свои закладки. Теперь буду вас намного почаще читать!
Очень интересно, но все в будущем хотелось бы еще побольше узнать об этом. Очень понравилась ваша статья!
а вот вопросик можно? У вас время после поста указано. Это московское? Заранее спасибо!
Ваш сайт в опере не очень то корректо показывается, а так все отлично! спасибки вам за умные мысли!
Ценные рекомендации, беру на заметку
Веселье, много юмора, смех на развлекательном портале смс приколов. Отправь смс бесплатно на Билайн. Развесели знакомых, отшли смс прикол с нашего портала.
Полностью с Вами согласна, примерно неделю назад написала про этоже в своем блоге!
В нашем интернет-магазине можно преобрести Crystal Case, аудио адаптеры, дата кабели MA. Последние новинки в сфере GPS-навигаторов, HDD плееров, Flash накопителей, мобильных телефонов.
Огромное человеческое спасбо!
По моему у Вас украли эту статью и поместили на другом сайте. Я её уже видела.
Юзабилити блога конечно прикольнуло)
Как можно связаться с автором блога для размещения постового у вас на сайте и сколько будет стоить?
Веселье, много юмора, смех на любимом ресурсе sms поздравлений. Бесплатная отправка sms на Билайн. Подколи друзей и подруг, отшли sms подколку с сайта.
Осень полесная информация. Много нового подчерпнул у вас. Много всего интересн
И да прибудет с нами сила
Очень интересно, но все в будущем хотелось бы еще побольше узнать об этом. Очень понравилась ваша статья!
В нашем интернет-магазине можно купить коммуникаторы, сотовые телефоны. Последние новинки в области Flash накопителей, GPS-навигаторов, HDD плееров и коммуникаторов.
Ваш пост навел меня на думки *ушел много думать* …
Опубликовал на своем блоге вашу статью, и напечатол там конечно-же обратную ссылку на вас. Но вот зашел посмотреть поевился ли трекбек, а его нет…
Приятно, сидя на работе. Отвлечься, от этой надоевшей работы. Расслабиться, и читать написанную тут информацию :)
По моему у Вас украли эту статью и поместили на другом сайте. Я её уже видела.
В нашем интернет-магазине можно купить защитные пленки, GPS, сотовые телефоны. Последние новинки в сфере коммуникаторов, HDD плееров, GPS-навигаторов.
“Дорогу одолеет идущий”. Желаю вам ни когда не останавливаться и быть творческой личностью – вечно!
Отличный пост, прочитав несколько статей на эту тему понял, что всё таки не посмотрел с другой стороны, а пост как-то очень заинтересовал.
Чёрт возьми! Круто!Вы Сами ответили.Беру в цитник! Смысл жизни и всё остальное. Решено.Без шуток.
Когда тело моё на кладбище снесут -
Ваши слёзы и речи меня не спасут.
Подождите, пока я не сделаюсь глиной,
А потом из меня изготовьте сосуд.
Постебался, спасибо за ссылку ;)
Ага, теперь понятно…А то я сразу не очень то и не понял где тут связь с самим заголовком…
Очень интересно!!! Только не очень могу понять как часто обновляется ваш блог?
А у вас пара ошибок в тексте… тока не обижайтесь )
Обратись ко мне в icq 161403363. Подскажу толковых людей.
Огромное человеческое спасбо!
С наступающими праздниками вас, между прочим!
В нашем интернет-магазине вы найдете сотовые телефоны, Реадер Sim, дата кабели USB. Новинки в области HDD плееров, коммуникаторов и Flash накопителей.
В нашем интернет-магазине можно преобрести Crystal Case, зарядные устройства от батарейки, аудио адаптеры. Новости в области коммуникаторов, Flash накопителей и GPS-навигаторов.
Веселье, смех и много юмора на портале sms пожеланий. Отправь sms прикол на Билайн. Развесели друзей и подруг, отшли смешное sms с нашего портала.
nice article, explained a lot
Онлайн Местонахождение человека по номеру мобильного. Система GSM-ЛОКАТОР была разработана в США во времена холодной войны. Много лет данная программа – пеленгатор находилась под грифом “СОВЕРШЕННО СЕКРЕТНО”
Идея создать такой проект возникла после просмотра популярного сайта Позор России – где всеобщим голосованием определяется человек, деятельность которого, по мнению посетителей сайта является самым большим позором для России.
Проект Позор Украины создавался с целью ответа на похожий вопрос: «Кто же по вашему мнению является самым большим позором для Украины?» Кто из здравствующих или ушедших в мир иной своими поступками заслужил всеобщую нелюбовь?
http://badnameofukraine.com.ua
Основная задача Яндекса — давать ответы на вопросы пользователей!
Пожалуй, это один из интереснейших блогов, которые я когда-либо читал :). Отличные статьи, Интересные комментарии. Так держать! :)
GPS оборудование
GPS – глобальная система позиционирования, определение местоположения путём измерения расстояний до объекта от точек с известными координатами — спутников. Расстояние вычисляется по времени задержки распространения сигнала от посылки его спутником до приёма антенной GPS-приёмника. То есть, для определения трёхмерных координат GPS-приёмнику нужно знать расстояние до трёх спутников и время GPS системы]. Таким образом, для определения координат и высоты приёмника, используются сигналы как минимум с четырёх спутников.
GSM оборудование
GSM-системы (on-line системы) позволяют получать информацию от оборудования мониторинга по каналам передачи операторов мобильной связи. Таким образом, съем информации с оборудования происходит в любой момент времени без непосредственного доступа к нему. В этом состоит основное преимущество GSM-систем перед off-line системами, требующими непосредственного подключения модулей мониторинга к персональному компьютеру. Наше оборудование поддерживает все технологии передачи информации по сети GSM: SMS, CSD, GPRS, Voice.
Счетчики топлива
Применение топливных счетчиков позволяет предприятиям получить объективную информацию о времени работы машин, вести постоянный контроль реального потребления горючего. При помощи DFM можно разработать нормы расхода ГСМ на отдельных маршрутах и технологических операциях.
Экономический эффект применения приборов учета топлива различен на разных предприятиях, обычно от 10 до 40 %, в зависимости от запущенности исходной ситуации и настойчивости менеджмента автопредприятия.
Link: http://gps-group.at.ua/
Понравился ваш блог. Сильно насыщен информацией. На рсс подпишусь. Скажите позволительно ли подписаться на email рассылку?
http://russianug.ru/?cat=6
Зашел случайно на сайт про Советский Союз. Аж слеза накатилась. Ностальгия, что тут скажешь.