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

10 янв. 2014 г., 11:42:57
Просмотры: 13.6K
Голосов: 0

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

Код sidebar.php:

<div id="sidebar">

<h2>Новости и объявления</h2>

<ul class="sidebar_list">

<?php dynamic_sidebar('sidebar'); ?>
Вы можете настроить цвета темы через панель опций. Имеется подробная документация.<br /><br /><br />

<?php if (is_page(array('home', 'about-us', 'academics', 'admission', 'activities', 'hall-of-fame', 'alumni', 'photo-gallery', 'news' ))) ?>
<?php $menu=wp_nav_menu('menu=sidebar_menu'); ?>
<?php if ( ! dynamic_sidebar( 'Sidebar' )) : ?>
<?php //Если динамический сайдбар не найден, показать виджеты по умолчанию  ?>
<?php endif; ?>
</ul>

</div>

Код functions.php:

<?php

if(function_exists('register_sidebar'))
{
// Регистрация виджета сайдбара
register_sidebar(array('name'=>'Left-Sidebar',
'before_widget'=>'<li>',
'after_widget'=>'</li>',
'before_title'=>'<h3>',
'after_title'=>'</h3>'
));
}
?>
0
Все ответы на вопрос 1
2

Я приведу базовый код для создания нового виджета. В WordPress это называется register_sidebar; В вашем коде вы не указали ID. Id=>your-widget-id

Поместите этот код в ваш functions.php

function my_widget(){
    register_sidebar( array(
        'name' => __( 'Боковая панель', 'yourtheme' ),
        'id' => 'sidebar-1',
        'description' => __( 'Описание боковой панели', 'yourtheme' ),
        'before_widget' => '<aside>',
        'after_widget' => '</aside>',
        'before_title' => '<h3>',
        'after_title' => '</h3>',
    ) );
}
add_action( 'widgets_init', 'my_widget' );

Затем поместите этот код в ваш index.php или sidebar.php (в любое место, где вам нужно)

if ( is_active_sidebar( 'sidebar-1' ) ) : //проверяем, используется ли боковая панель
dynamic_sidebar( 'sidebar-1' );  // отображаем боковую панель
endif;

Не забудьте указать ID.

Подробнее http://codex.wordpress.org/Function_Reference/register_sidebar

10 янв. 2014 г. 12:27:09
Комментарии

Мне нужно вставить это как есть: Id=>your-widget-id или также указать номер id??

admin admin
10 янв. 2014 г. 12:31:59

Нет. Это просто для примера. Попробуйте мой код, как я сказал выше.

ucon89 ucon89
10 янв. 2014 г. 14:27:19