¿Es posible preestablecer el contenido de un widget mediante un script de plugin?
Este plugin es una prueba simple para ver si puedo llenar dinámicamente un área de widget preexistente con texto. En este caso, mi tema ha creado el área de widget "home-header-widget" y estoy intentando poblarla con el contenido de 'text' a continuación. Me quedo atascado en la línea...
$sidebars_widgets[$sidebar_id] = "widget_text-".$id;
En que no estoy seguro de cómo obtener una referencia al objeto de widget de texto creado dinámicamente para preestablecer su contenido y colocarlo dentro de mi 'home-header-widget'...
<?php
/*
Plugin Name: Prueba de Widget
*/
function cb_activate_widgettest(){
$sidebar_id = 'home-header-widget';
$sidebars_widgets = get_option('sidebars_widgets');
$id = count($opts)+1;
$sidebars_widgets[$sidebar_id] = array("text-".$id);
$ops = get_option('widget_text');
// encontrar un $id que funcione...
$ops[$id] = array(
'title' => 'foo hoo',
'text' => 'bar mitz', // ¿contenido?
);
update_option('widget_text', $ops);
update_option('sidebars_widgets', $sidebars_widgets);
}
register_activation_hook(__FILE__, 'cb_activate_widgettest');
?>

Hay algunos errores en tu código:
Necesitas especificar manualmente el ID de la instancia, por ejemplo 2. Si quieres añadir un widget de texto, y no sobrescribir los contenidos de la barra lateral, entonces prueba usando
$id = count($opts)+1
, o simplemente podrías generar un ID aleatorio.Usa el formato widget_ID_base-ID_instancia en
$sidebars_widgets[$sidebar_id] = "widget_text-".$id;
, y colócalo dentro de un array:$sidebars_widgets[$sidebar_id] = array("text-".$id);

¿Cómo preconfigurar un widget de barra lateral con contenido predeterminado mediante script?
¿Cómo agregar múltiples copias de un widget desde "widgets disponibles"?
https://wordpress.stackexchange.com/questions/5282/code-to-dynamically-populate-a-widget-with-preset-content
Este es tu cuarto tema sobre configuración de widgets, ¿no se podría haber tratado esto en línea con cualquiera de tus otros temas sobre widgets?
Siento que estos temas sobre widgets están empezando a volverse un poco repetitivos.
