Dans le développement de thèmes personnalisés, comment activer les widgets intégrés par défaut? Notez que je veux dire les widgets intégrés par défaut, pas ceux personnalisés. J'ai essayé l'exemple suivant pour un blog WP 3.12 en le plaçant dans le fichier functions.php de mon thème, en essayant d'activer Pages par défaut. Cela n'a pas fonctionné, mais je ne sais pas pourquoi.
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');
Qu'est-ce que je fais mal?
EDIT: LA SOLUTION
Dans mon thème, je devais rééditer sidebar.php et utiliser plutôt cette annotation.
<?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">Archives</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>' . __('Pages') . '</h2>'); ?>
</ul>
</li>
<?php endif; ?>
</ul>
</div><!-- sidebar -->
ce n'est pas ainsi que wp_register_sidebar_widget
est utilisé pour créer des widgets. Si vous souhaitez que votre barre latérale affiche les widgets par défaut, utilisez [dynamic_sidebar()][1]
dans votre thème, par exemple à partir du thème 2010:
<div id="primary" class="widget-area" role="complementary">
<ul class="xoxo">
<?php
/* When we call the dynamic_sidebar() function, it'll spit out
* the widgets for that widget area. If it instead returns false,
* then the sidebar simply doesn't exist, so we'll hard-code in
* some default sidebar stuff just in case.
*/
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( 'Archives', 'twentyten' ); ?></h3>
<ul>
<?php wp_get_archives( 'type=monthly' ); ?>
</ul>
</li>
<li id="meta" class="widget-container">
<h3 class="widget-title"><?php _e( 'Meta', 'twentyten' ); ?></h3>
<ul>
<?php wp_register(); ?>
<li><?php wp_loginout(); ?></li>
<?php wp_meta(); ?>
</ul>
</li>
<?php endif; // end primary widget area ?>
</ul>
</div><!-- #primary .widget-area -->