Включение стандартных виджетов в пользовательской теме WordPress
6 мая 2011 г., 18:57:56
Просмотры: 2.88K
Голосов: 1
При разработке пользовательской темы, как включить стандартные встроенные виджеты? Речь именно о стандартных виджетах, а не о пользовательских. Я попробовал следующий пример для блога на WP 3.12, поместив этот код в файл functions.php своей темы, пытаясь активировать виджет "Страницы" по умолчанию. Это не сработало, но я не понимаю почему.
function mytheme_widget_init(){
$asOps = array(
'classname' => 'widget_pages',
'description' => __( "")
);
wp_register_sidebar_widget('pages', __('Pages'), 'wp_widget_pages', $asOps);
}
add_action('widgets_init','mytheme_widget_init');
Что я делаю не так?
РЕДАКТИРОВАНИЕ: РЕШЕНИЕ
В моей теме потребовалось отредактировать sidebar.php и использовать следующую разметку:
<?php ?>
<div id="sidebar" role="complementary">
<ul>
<?php if ( !dynamic_sidebar(1) ) : ?>
<?php endif; ?>
<?php if ( !is_active_sidebar(1) ) : ?>
<li id="search" class="widget-container widget_search">
<?php get_search_form(); ?>
</li>
<li id="categories" class="widet-container widget_categories">
<?php wp_list_categories('show_option_none=&title_li=<h2>' . __('Categories') . '</h2>' ); ?>
</li>
<li id="archives" class="widget-container widget_archives">
<h2 class="widget-title">Архивы</h2>
<ul>
<?php wp_get_archives( 'type=monthly' ); ?>
</ul>
</li>
<li id="pages" class="widget-container widget_pages">
<ul>
<?php wp_list_pages('title_li=<h2>' . __('Страницы') . '</h2>'); ?>
</ul>
</li>
<?php endif; ?>
</ul>
</div><!-- sidebar -->

Volomike
1.86K
Все ответы на вопрос
1
1
это не тот способ, функция wp_register_sidebar_widget
используется для создания виджетов.
если вы хотите, чтобы в боковой панели по умолчанию отображались виджеты, используйте [dynamic_sidebar()][1]
в вашей теме, например, как в теме 2010:
<div id="primary" class="widget-area" role="complementary">
<ul class="xoxo">
<?php
/* Когда мы вызываем функцию dynamic_sidebar(), она выводит
* виджеты для данной области виджетов. Если вместо этого возвращается false,
* значит боковая панель просто не существует, поэтому мы вручную добавим
* содержимое по умолчанию на случай отсутствия виджетов.
*/
if ( ! dynamic_sidebar( 'primary-widget-area' ) ) : ?>
<li id="search" class="widget-container widget_search">
<?php get_search_form(); ?>
</li>
<li id="archives" class="widget-container">
<h3 class="widget-title"><?php _e( 'Архивы', 'twentyten' ); ?></h3>
<ul>
<?php wp_get_archives( 'type=monthly' ); ?>
</ul>
</li>
<li id="meta" class="widget-container">
<h3 class="widget-title"><?php _e( 'Мета', 'twentyten' ); ?></h3>
<ul>
<?php wp_register(); ?>
<li><?php wp_loginout(); ?></li>
<?php wp_meta(); ?>
</ul>
</li>
<?php endif; // конец области виджетов primary ?>
</ul>
</div><!-- #primary .widget-area -->

Bainternet
67.7K
6 мая 2011 г. 19:18:54
Похожие вопросы
1
ответов