Что нового?

Создаём sidebar (боковое меню)

Sat

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

Открываем functions.php и в самом начале находим функцию сайдбара, у меня она выглядела так

<!--c1--><div class='codetop'>Код</div><div class='codemain'><!--ec1-->if ( function_exists(’register_sidebar’) )
register_sidebar(array(
‘before_widget’ => ”,
‘after_widget’ => ”,
‘before_title’ => ‘<h4>’,
‘after_title’ => ‘</h4>’,
));<!--c2--></div><!--ec2-->

меняем весь этот код на этот

<!--c1--><div class='codetop'>Код</div><div class='codemain'><!--ec1-->if ( function_exists('register_sidebars') )
register_sidebars(2);<!--c2--></div><!--ec2-->

цифра 2, это сколько вы хотите создать сайдбаров, сохраняете и в админке вы уже можете видеть созданные "сайдбары".

Далее создаём файл sidebar2.php так как sidebar1.php у меня уже есть.
в созданный sidebar2.php добавляем этот код

<!--c1--><div class='codetop'>Код</div><div class='codemain'><!--ec1--><div class="sidebar1">
<ul>
<?php if ( function_exists('dynamic_sidebar') && dynamic_sidebar('sidebar 2') ) : else : ?>
<?php endif; ?>
</ul>
</div><!--c2--></div><!--ec2-->

цифра 2 это код сайдбара, если у вас больше сайдбаров то этот код дублируем столько раз сколько у вас сайдбаров и везде указываем цифру ваших сайдбаров.

Далее мы подключаем наш sidebar2.php, для этого открываем sidebar.php и после строки

<!--c1--><div class='codetop'>Код</div><div class='codemain'><!--ec1--><?php include (TEMPLATEPATH . '/sidebar1.php'); ?><!--c2--></div><!--ec2-->

вставляем <!--c1--><div class='codetop'>Код</div><div class='codemain'><!--ec1--><?php include (TEMPLATEPATH . '/sidebar2.php'); ?><!--c2--></div><!--ec2-->

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

lena1

クリエイター
<!--quoteo--><div class='quotetop'>Цитата</div><div class='quotemain'><!--quotec-->1. почему не сделать всё в одном сайдбаре?<!--QuoteEnd--></div><!--QuoteEEnd-->
ну так сделай сам
<!--quoteo--><div class='quotetop'>Цитата</div><div class='quotemain'><!--quotec-->3. в панеле виджетов отображается второй сайдбар куда я могу поместить виджеты, но при добавлении туда виджетов, всё что было изначально в этом сайдбаре убирается, как совместить уже установленные ссылки с будущими виджетами?<!--QuoteEnd--></div><!--QuoteEEnd-->
потому что у тебя там не было виджетов, и когда ты добавил сам их, они перекрыли код который там был, добавь нужные виджеты и будет тебе счастье
 

Sat

PROnets
<!--quoteo--><div class='quotetop'>Цитата</div><div class='quotemain'><!--quotec-->добавь нужные виджеты<!--QuoteEnd--></div><!--QuoteEEnd-->

В смысле найти плагины или в код сайдбара виджеты добавить?
 

Sat

PROnets
Хорошо, смотри я создал 3-й сайдабар, подключил его, всё норм, будет отображаться, но как сделать что бы эта колонка была видна в админке что бы я в ней виджеты пихал?
 

Sat

PROnets
так это получается я создал статический сайдбар, а для виджетов нужен динамический. Нашёл как его создать:

Правим functions.php с целью получения нескольких динамических сайдбаров

Заменяем код, добавляющий 1 динамический сайдбар:

<!--c1--><div class='codetop'>Код</div><div class='codemain'><!--ec1--><?php
if ( function_exists(’register_sidebar’) )
register_sidebar();
?><!--c2--></div><!--ec2-->

Или этот:

<!--c1--><div class='codetop'>Код</div><div class='codemain'><!--ec1--><?php
if ( function_exists(’register_sidebar’) )
register_sidebar(array(
‘before_widget’ => ”,
‘after_widget’ => ”,
‘before_title’ => ‘<h4>’,
‘after_title’ => ‘</h4>’,
));
?><!--c2--></div><!--ec2-->

На код, добавляющий несколько динамических сайдбаров:

<!--c1--><div class='codetop'>Код</div><div class='codemain'><!--ec1--><?php
if ( function_exists(’register_sidebar’) )
register_sidebar(array(’name’=>’sidebar1′,
‘before_widget’ => ”,
‘after_widget’ => ”,
‘before_title’ => ‘<h4>’,
‘after_title’ => ‘</h4>’,
));
register_sidebar(array(’name’=>’sidebar2′,
‘before_widget’ => ”,
‘after_widget’ => ”,
‘before_title’ => ‘<h4>’,
‘after_title’ => ‘</h4>’,
));
?><!--c2--></div><!--ec2-->

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

Открываем sidebar.php и в места, где мы хотим, чтобы отображались наши динамические сайдбары, вставляем соответствующие им коды.

Например, в место отображения динамического сайдбара 1 мы вставляем код:

<!--c1--><div class='codetop'>Код</div><div class='codemain'><!--ec1--><?php if ( !function_exists('dynamic_sidebar')
|| !dynamic_sidebar(’sidebar1′) ) : ?>
<?php endif; ?><!--c2--></div><!--ec2-->

В место отображения динамического сайдбара 2 мы вставляем код:

<!--c1--><div class='codetop'>Код</div><div class='codemain'><!--ec1--><?php if ( !function_exists('dynamic_sidebar')
|| !dynamic_sidebar(’sidebar2′) ) : ?>
<?php endif; ?><!--c2--></div><!--ec2-->

но у меня такой sidebar.php

<!--c1--><div class='codetop'>Код</div><div class='codemain'><!--ec1--><div id="rightcol">
<?php include (TEMPLATEPATH . '/banner.php'); ?>
<?php include (TEMPLATEPATH . '/about.php'); ?>
<?php include (TEMPLATEPATH . '/searchform.php'); ?>
<?php include (TEMPLATEPATH . '/video.php'); ?>



<div id="sidebar">

<?php include (TEMPLATEPATH . '/sidebar1.php'); ?>&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;</div>
</div><!--c2--></div><!--ec2-->

и куда вставлять теперь тот код?
 

Sat

PROnets
ну предположи что я уже вставлял и у меня ошибка выскакивает, так в какое было правильнее? )) возможно что не именно такой код а немного модифицировать его нужно?
 

Sat

PROnets
в общем сделал по другому:
создал файл sidebar2.php? вставил в него код

<!--c1--><div class='codetop'>Код</div><div class='codemain'><!--ec1--><div class="sidebar2">
<?php if ( function_exists('dynamic_sidebar') && dynamic_sidebar('sidebar 2') ) : else : ?>

<?php endif; ?>
</div><!--c2--></div><!--ec2-->
сохранил.

в sidebar.php после <!--c1--><div class='codetop'>Код</div><div class='codemain'><!--ec1--><?php include (TEMPLATEPATH . '/sidebar1.php'); ?><!--c2--></div><!--ec2--> добавил <!--c1--><div class='codetop'>Код</div><div class='codemain'><!--ec1--><?php include (TEMPLATEPATH . '/sidebar2.php'); ?><!--c2--></div><!--ec2-->

сохранил, в css продублировал тот же код sidebar1 только везде поменял значение на sidebar2 и всё заработало!! Но есть косяки по css сейчас попробую доделать..
 

Sat

PROnets
сегур подчитси плиз темку, разобрался с сайдбарами и отредактировал первый пост =)
 

lena1

クリエイター
кстати.. я почти и не пользуюсь виджетами, максимум использую 1 или 2 виджета, а всё остальное чисто код идет
 

JuSt_ONe

New member
У меня 1 сайдбар с права. сможно ли добавить еще и в футер? :suspect:
 

Sat

PROnets
<!--quoteo--><div class='quotetop'>Цитата</div><div class='quotemain'><!--quotec-->У меня 1 сайдбар с права. сможно ли добавить еще и в футер?<!--QuoteEnd--></div><!--QuoteEEnd-->
поконкретнее, что вы хотите.
 
Сверху