Activación de Widgets por Defecto en el Desarrollo de Temas Personalizados
En la creación de temas para WP, si una barra lateral no está activa, ¿puedo activarla? Además, si la barra lateral está activa pero no contiene widgets, ¿puedo añadir algunos?
Soy desarrollador de temas y plugins, pero esto es algo que aún no he aprendido a hacer.

@Volomike,
Cuando registras una barra lateral en las funciones de tu tema, estará activa en el panel de control. Si no se añaden widgets a tus barras laterales, WordPress añadirá los widgets predeterminados. Puedes evitar que WordPress añada los widgets predeterminados desregistrándolos:
// Eliminar Widgets predeterminados de WP
// Función para WP 2.8 usando $widget_class
if (function_exists('unregister_widget')) {
unregister_widget('WP_Widget_Meta');
unregister_widget('WP_Widget_Search');
unregister_widget('');
// Función para versiones anteriores a WP 2.8 usando $id
} else {
unregister_widget_control('meta');
unregister_widget_control('search');
}
También puedes preconfigurar tus propios widgets.
// El siguiente código es un ejemplo de The Thematic Theme, que tiene licencia GPLv2
register_sidebar_widget(__('Búsqueda', '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(__('Enlaces RSS', 'thematic'), 'widgets'), 'widget_thematic_rsslinks');
register_widget_control(array(__('Enlaces RSS', 'thematic'), 'widgets'), 'widget_thematic_rsslinks_control', 300, 90);
// Widgets preconfigurados
$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 ));
}
Thematic es en realidad un gran ejemplo de todo lo que se puede hacer con widgets. Echa un vistazo a widgets.php y widgets-extensions.php

Thematic puede ser un poco directo e ignorar completamente muchas funcionalidades integradas de WordPress. Esto puede ser por compatibilidad con versiones anteriores, pero llega un momento en que hay que cortar por lo sano. En lugar de verificar $_GET['activated'], utiliza la API incorporada y emplea la acción switch_theme
para probar los widgets instalados y realizar los cambios necesarios.

La solución final está aquí: http://wordpress.stackexchange.com/questions/16603/enabling-default-widgets-in-a-custom-theme
