En Wordpress, mi objetivo es poder dar una clase personalizada a cada widget que coloque en la barra lateral. Preferiblemente me gustaría agregar esta clase en la configuración del widget de cada widget. TAMBIÉN widgets de terceros.Wordpress: agregue la opción de configuración a todas las configuraciones de widgets
estaba pensando en cambiar el nombre de la clase, ya que el nombre de clase ya se pasa a la función deregister_sidebar (% 2 $ s):
<?php
register_sidebar(array('before_widget' => '<aside id="%1$s" class="widget %2$s blue">'));
?>
Por supuesto que no hay que cambiar el código del núcleo WP o tercera parte complementos Esto significa que necesito escribir un complemento que se enganche en el proceso de configuración del widget.
ya me di cuenta que es posible modificar todas las formas de widgets, enganchando a la acción 'in_widget_form':
<?php
add_action('in_widget_form', 'teaserWidgetAddToForm');
function teaserWidgetAddToForm($widget_instance) {
?>
<label for="<?php echo $widget_instance->get_field_id('teaser-classname'); ?>">Custom classname(s):</label>
<input type="text" id="<?php echo $widget_instance->get_field_id('teaser-classname'); ?>" name="<?php echo $widget_instance->get_field_name('teaser-classname'); ?>">
<?php
}
?>
Estos datos deben ser salvados por la super clase Widget, pero ¿cómo puede recuperar estos datos (por lo tanto, al abrir la configuración del widget más adelante se muestra lo que completó antes)
Y, estos datos guardados deben colocarse en la instancia del widget: ¿cómo se hace? Creo que mediante el uso de algo como:
<?php
$wp_registered_widgets[<widget_id>]['callback'][0]['widget_options']['classname'] = <chosen_class>;
?>
Así que, básicamente, tengo 2 preguntas:
- ¿Estoy usando la forma correcta de abordar este problema (el estilo de los widgets individuales)
- Si es así, ¿cómo ¿Puedo modificar una instancia de widget para guardar y recuperar configuraciones adicionales, sin tener que modificar el código fuente de Wordpress o del complemento de terceros?
Brilliant! Mientras tanto, pude guardar la nueva configuración y llegué hasta el punto de utilizar el enlace "widget_display_callback". Pero no se dio cuenta de que puede devolver false y llamar $ widget-> widget() usted mismo. ¡Muchas gracias! – publicJorn