In Wordpress, il mio obiettivo è essere in grado di assegnare una classe personalizzata a ogni widget che inserisco nella barra laterale. Preferibilmente vorrei aggiungere questa classe nelle impostazioni del widget di ciascun widget. ANCHE widget di terze parti.Wordpress: aggiungi l'opzione di configurazione a tutte le impostazioni del widget
stavo pensando di cambiare il nome di classe, perché il nome della classe è già passato alla funzione diregister_sidebar (% 2 $ s):
<?php
register_sidebar(array('before_widget' => '<aside id="%1$s" class="widget %2$s blue">'));
?>
Naturalmente non dovrebbe cambiare codice di base WP o 3a parte plugins. Ciò significa che ho bisogno di scrivere un plugin che si agganci al processo di configurazione del widget.
ho già scoperto che è possibile modificare tutti i widget forme, agganciando in azione '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
}
?>
Questi dati devono essere salvati dalla classe super-Widget, ma come si fa a recuperare questi dati (quindi, quando si aprono le impostazioni del widget in seguito viene mostrato ciò che è stato compilato in precedenza)
E, questi dati salvati devono essere inseriti nell'istanza del widget -come è fatto? Credo che usando qualcosa come:
<?php
$wp_registered_widgets[<widget_id>]['callback'][0]['widget_options']['classname'] = <chosen_class>;
?>
Quindi, fondamentalmente ho 2 domande:
- Sto usando il modo corretto di affrontare questo problema (lo stile dei singoli widget)
- Se sì, come posso modificare un'istanza widget per salvare e recuperare impostazioni aggiuntive, senza dover modificare Wordpress o codice sorgente Plugin di terze parti.
Brilliant! Nel frattempo sono riuscito a salvare le nuove impostazioni e sono arrivato fino all'utilizzo del hook "widget_display_callback". Ma non ti rendi conto che sei in grado di restituire false e chiamare $ widget-> widget() te stesso. Grazie mille! – publicJorn