Dans la construction du thème WP, si une barre latérale n'est pas active, puis-je l'activer? De plus, si la barre latérale est active et ne contient aucun widget, puis-je en ajouter?
Je suis un développeur de thèmes et de plugins, mais je ne l’ai pas encore appris à le faire.
@ Volomike,
Lorsque vous enregistrez une barre latérale dans vos fonctions de thèmes, celle-ci sera active dans le tableau de bord. Si aucun widget n'est ajouté à vos barres latérales, WordPress ajoutera les widgets par défaut. Vous pouvez empêcher WordPress d’ajouter les widgets par défaut en les désenregistrant:
// Remove WP default Widgets
// WP 2.8 function using $widget_class
if (function_exists('unregister_widget')) {
unregister_widget('WP_Widget_Meta');
unregister_widget('WP_Widget_Search');
unregister_widget('');
// pre WP 2.8 function using $id
} else {
unregister_widget_control('meta');
unregister_widget_control('search');
}
Vous pouvez également prédéfinir vos propres widgets.
// The following code sample is from The Thematic Theme which is licensed under the GPLv2
register_sidebar_widget(__('Search', 'thematic'), 'widget_thematic_search', null, 'search');
unregister_widget_control('search');
register_sidebar_widget(__('Meta', 'thematic'), 'widget_thematic_meta', null, 'meta');
unregister_widget_control('meta');
register_sidebar_widget(array(__('RSS Links', 'thematic'), 'widgets'), 'widget_thematic_rsslinks');
register_widget_control(array(__('RSS Links', 'thematic'), 'widgets'), 'widget_thematic_rsslinks_control', 300, 90);
// Pre-set Widgets
$preset_widgets = array (
'primary-aside' => array( 'search', 'pages', 'categories', 'archives' ),
'secondary-aside' => array( 'links', 'rss-links', 'meta' )
);
if ( isset( $_GET['activated'] ) ) {
update_option( 'sidebars_widgets', apply_filters('thematic_preset_widgets',$preset_widgets ));
}
Themati c est en fait un excellent exemple de tout ce que l'on peut faire avec des widgets. Jetez un coup d'oeil à widgets.php et widgets-extensions.php