Уже очень давно мне режет глаза сайдбар в этом блоге. Решил заняться его оптимизацией и описать проделанную последовательность действий в этой небольшой заметке.

Собственно о какой оптимизации идет речь? Дело в том, что виджеты «Рубрики» и «Архив» в этом блоге по ширине занимают ровно половину сайдбара. Так почему бы не расположить их рядом (а не один под другим, как сейчас было до написания поста), ведь так будет намного проще найти нужную рубрику или посмотреть счетчик посещаемости, потому что не придется прокручивать страницу.

Сказано — сделано. Я помню, что при редактировании темы (то ли переводил что-то, то ли дописывал…) я видел в файле 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’ => ‘<h2 class=»widgettitle»>’ ,
‘after_title’ => ‘</h2>’ ,
) ) ;
}

Немного покурив описание функции register_sidebar и поигравшись с шаблоном на одном моем тестовом сайте, я понял, что надо делать. Итак, приведенный выше код заменяем на следующий:

if ( function_exists ( ‘register_sidebar’ ) )
{
register_sidebar ( array (
‘before_widget’ => ‘<li id=»%1$s» class=»widget %2$s»>’ ,
‘after_widget’ => ‘</li>’ ,
‘before_title’ => ‘<h2 class=»widgettitle»>’ ,
‘after_title’ => ‘</h2>’ ,
) ) ;
register_sidebar ( array (
‘name’ => ‘Left Sidebar’ ,
‘before_widget’ => ‘<li id=»%1$s» class=»widget %2$s»>’ ,
‘after_widget’ => ‘</li>’ ,
‘before_title’ => ‘<h2 class=»widgettitle»>’ ,
‘after_title’ => ‘</h2>’ ,
) ) ;
register_sidebar ( array (
‘name’ => ‘Right Sidebar’ ,
‘before_widget’ => ‘<li id=»%1$s» class=»widget %2$s»>’ ,
‘after_widget’ => ‘</li>’ ,
‘before_title’ => ‘<h2 class=»widgettitle»>’ ,
‘after_title’ => ‘</h2>’ ,
) ) ;
}

После этого в разделе панели управления «Внешний вид» → «Виджеты» появятся два новых виджета с именами «Left Sidebar» и «Right Sidebar». Перетаскиваем на них «Рубрики», «Архив» и «Счетчик». Кстати, важно не забыть выключить плагин WP Super Cache, если он используется в блоге, иначе никаких изменений на сайте не будет видно.

Теперь правим sidebar.php. Вот — что было:

<div id=»sidebar» class=»sidebars»>
<ul>
<?php
if ( function_exists ( ‘dynamic_sidebar’ ) && dynamic_sidebar ( 1 ) ) {
?>
<?
} else { ?>

А вот — что стало:

<div id=»sidebar» class=»sidebars»>
<ul>
<?php
if ( function_exists ( ‘dynamic_sidebar’ ) && dynamic_sidebar ( 1 ) ) {
?>
<div style=»float: left; width: 49%;»>
<?php dynamic_sidebar ( 2 ) ; /* левый сайдбар */ ?>
</div>
<div style=»float: right; width: 49%;»>
<?php dynamic_sidebar ( 3 ) ; /* правый сайдбар */ ?>
</div>
<div class=»clear»></div>
<?
} else { ?>

Вслед за основным сайдбаром мы выводим два новых. Определить id сайдбара, который нужно передать функции dynamic_sidebar, очень просто — в соответствии с порядком, в котором сайдбары создаются в functions.php с помощью register_sidebar().

Ширину слоев, в которых будут выведены сайдбары, я установил равной 49%, чтобы между ними осталось пространство. Два сайдбара вплотную друг к другу — это не очень красиво.

По большому счету — это все, но в моем случае пришлось еще поправить таблицу стилей. Смотрим:

#sidebar {
width : 260px ;
}

/* …. */

.sidebars li ul {
background : #f1f1f1 ;
width : 240px ;
padding : 10px ;
}

Нужно просто закомментировать строку относительно ширины виджетов (.sidebars li ul). Далее — включаем WP Super Cache, очищаем кэш, жмем Ctr+R, чтобы браузер обновил CSS, и смотрим результат. По-моему стало ощутимо удобнее. Надеюсь, в вашем браузере ничего не поползло?

На проделанные телодвижения уходит минут пять. На мой взгляд, основная ценность данного приема состоит в том, что теперь, листая каталоги шаблонов WordPress при создании очередного «серого» проекта , не нужно думать о том, сколько сайдбаров он поддерживает. А если вы работаете дизайнером — вам не нужно ломать голову над тем, сколько сайдбаров делать в шаблоне. Делайте один, а если заказчик окажется недовольным, вы с легкостью добавите еще пол десятка.

admin

Share
Published by
admin

Recent Posts

Консоль удаленного рабочего стола(rdp console)

Клиент удаленного рабочего стола (rdp) предоставляет нам возможность войти на сервер терминалов через консоль. Что…

2 месяца ago

Настройка сети в VMware Workstation

В VMware Workstation есть несколько способов настройки сети гостевой машины: 1) Bridged networking 2) Network…

2 месяца ago

Логи брандмауэра Windows

Встроенный брандмауэр Windows может не только остановить нежелательный трафик на вашем пороге, но и может…

2 месяца ago

Правильный способ отключения IPv6

Вопреки распространенному мнению, отключить IPv6 в Windows Vista и Server 2008 это не просто снять…

2 месяца ago

Ключи реестра Windows, отвечающие за параметры экранной заставки

Параметры экранной заставки для текущего пользователя можно править из системного реестра, для чего: Запустите редактор…

2 месяца ago

Как управлять журналами событий из командной строки

В этой статье расскажу про возможность просмотра журналов событий из командной строки. Эти возможности можно…

2 месяца ago