In Wordpress ist mein Ziel, in der Lage zu geben, eine benutzerdefinierte Klasse zu jedem Widget, das ich in der Sidebar gesetzt. Vorzugsweise möchte ich diese Klasse in den Widget-Einstellungen jedes Widget hinzufügen. ALSO 3rd Party Widgets.Wordpress: Hinzufügen Konfigurationsoption zu allen Widget-Einstellungen
Ich dachte an den Klassennamen zu ändern, weil der Klassenname bereits auf die register_sidebar Funktion (% 2 $ s) übergeben wird:
<?php
register_sidebar(array('before_widget' => '<aside id="%1$s" class="widget %2$s blue">'));
?>
Ofcourse sollte ich nicht WP Kern-Code oder 3rd-Party ändern Plugins. Das bedeutet, dass ich ein Plugin schreiben muss, das sich in den Widget-Konfigurationsprozess einklinkt.
ich bereits herausgefunden, dass es möglich ist, alle Widgets Formen ändern, indem sie in Aktion ‚in_widget_form‘ Einhaken:
<?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
}
?>
Diese Daten werden von der Widget Superklasse gespeichert werden sollen, sondern wie man diese Daten ruft (also beim Öffnen der Widget-Einstellungen zeigt später, was Sie früher ausgefüllt)
Und diese gespeicherten Daten sollten in die Widget-Instanz-wie ist das getan? Ich denke, durch so etwas wie mit: Also im Grunde
<?php
$wp_registered_widgets[<widget_id>]['callback'][0]['widget_options']['classname'] = <chosen_class>;
?>
Ich habe 2 Fragen:
- Bin ich den richtigen Weg, mit diesem Problem zu begegnen (Styling der einzelnen Widgets)
- Wenn ja, wie kann ich eine Widget-Instanz ändern, um zusätzliche Einstellungen zu speichern und abzurufen, ohne den Quellcode von Wordpress oder Drittanbieter-Plugins ändern zu müssen.
Brilliant! In der Zwischenzeit konnte ich die neuen Einstellungen speichern und ich kam so weit wie den "widget_display_callback" Hook. Aber du hast nicht erkannt, dass du in der Lage bist, false zurückzugeben und $ widget-> widget() selbst aufzurufen. Vielen Dank! – publicJorn