Machen Sie ein Dashboard-Widget konfigurierbar
Vor ein paar Wochen haben wir gesehen, wie man der Verwaltung eine benutzerdefinierte RSS-Dashboard-Metabox hinzufĂŒgt. Heute möchte ich Ihnen zeigen, wie Sie dieser Dashboard-Metabox konfigurierbare Optionen hinzufĂŒgen.
Hier ist das Ergebnis dessen, was wir tun werden:
Die wichtigste Funktion in diesem Tutorial ist wp_add_dashboard_widget(). Es ist die WordPress-Funktion, die ein Dashboard-Widget registriert. Wir haben bereits gesehen, dass die Registrierung des Widgets und der Funktion, die das Widget auf dem Dashboard ausgibt, ziemlich einfach ist, aber wir haben den letzten Parameter dieser Funktion nicht behandelt. GrundsÀtzlich hat wp_add_dashboard_widget() 4 Parameter:
$widget_id
(integer) (erforderlich) ein identifizierender Slug fĂŒr Ihr Widget. Dies wird als CSS-Klasse und SchlĂŒssel im Widget-Array verwendet.
Standard: Keine
$widget_name
(string) (erforderlich) Dies ist der Name, den Ihr Widget in seiner Ăberschrift anzeigt.
Standard: Keine
$callback
(string) (erforderlich) Der Name einer von Ihnen erstellten Funktion, die den tatsÀchlichen Inhalt Ihres Widgets anzeigt.
Standard: Keine
$control_callback
(string) (optional) Der Name einer von Ihnen erstellten Funktion, die die Ăbermittlung von Widget-Optionsformularen (Konfigurationsformularen) verarbeitet und auch die Formularelemente anzeigt.
Standard: Keine
Wie Sie sehen, ist der vierte Parameter fĂŒr die âKonfigurierenâ-Optionen verantwortlich. Wenn Sie diesen Parameter ausfĂŒllen, weisen Sie WordPress an, eine bestimmte Funktion zum Konfigurieren des Widgets zu laden. Es erstellt automatisch einen âKonfigurierenâ-Link im Metabox-Titel, wenn Sie den Cursor darĂŒber platzieren.
Schritt 1: Registrieren Sie die Funktion âOptionen konfigurierenâ.
Der erste Schritt besteht also darin, den Aufruf wp_add_dashboard_widget() zu Ă€ndern und den Namen der Konfigurationsoptionsfunktionen im letzten Parameter hinzuzufĂŒgen. Ihre rc_mdm_register_widgets()-Funktionen sollten wie folgt aussehen:
/**
* Register all dashboard metaboxes
*
* @access public
* @since 1.0
* @return void
*/
function rc_mdm_register_widgets() {
global $wp_meta_boxes;
wp_add_dashboard_widget('widget_custom_rss', __('My RSS Feeds', 'rc_mdm'), 'rc_mdm_create_my_rss_box', 'rc_mdm_configure_my_rss_box');
}
add_action('wp_dashboard_setup', 'rc_mdm_register_widgets');Wir haben einfach ârc_mdm_configure_my_rss_boxâ zum letzten Parameter hinzugefĂŒgt.
Schritt 2: Erstellen Sie die Funktion âOptionen konfigurierenâ.
Dieser Schritt ist nicht kompliziert. Wir mĂŒssen lediglich Formularfelder erstellen, die in einem Array gespeichert sind. Dazu verwenden wir die update_option(). Wir mĂŒssen kein vollstĂ€ndiges Formular erstellen, da WordPress es fĂŒr uns erstellt. Wir mĂŒssen nur die Felder registrieren. Ein sehr guter Punkt ist, dass WordPress dem Formular automatisch eine Nonce hinzufĂŒgt, die das Formular sicher macht und potenzielle Sicherheitsprobleme vermeidet. Hier ist der Code unserer Funktion rc_mdm_configure_my_rss_box() (erinnern Sie sich? Es ist der vierte Parameter, den wir in wp_add_dashboard_widget() definiert haben).
/**
* Creates the RSS metabox configuration settings
*
* @access public
* @since 1.0
* @return void
*/
function rc_mdm_configure_my_rss_box( $widget_id ) {
// Get widget options
if ( !$rc_mdm_widget_options = get_option( 'rc_mdm_dashboard_widget_options' ) )
$rc_mdm_widget_options = array();
// Update widget options
if ( 'POST' == $_SERVER['REQUEST_METHOD'] && isset($_POST['rc_mdm_widget_post']) ) {
update_option( 'rc_mdm_dashboard_widget_options', $_POST['rc_mdm_widget'] );
}
// Retrieve feed URLs
$url_1 = $rc_mdm_widget_options['url_1'];
$url_2 = $rc_mdm_widget_options['url_2'];
$url_3 = $rc_mdm_widget_options['url_3']; ?>
<p>
<label for="rc_mdm_url_1-"><?php _e('Enter the RSS feed URL #1:', 'rc_mdm'); ?></label>
<input class="widefat" id="rc_mdm_url_1" name="rc_mdm_widget[url_1]" type="text" value="<?php if( isset($url_1) ) echo $url_1; ?>" />
</p>
<p>
<label for="rc_mdm_url_2"><?php _e('Enter the RSS feed URL #2:', 'rc_mdm'); ?></label>
<input class="widefat" id="rc_mdm_url_2" name="rc_mdm_widget[url_2]" type="text" value="<?php if( isset($url_2) ) echo $url_2; ?>" />
</p>
<p>
<label for="rc_mdm_url_3"><?php _e('Enter the RSS feed URL #3:', 'rc_mdm'); ?></label>
<input class="widefat" id="rc_mdm_url_3" name="rc_mdm_widget[url_3]" type="text" value="<?php if( isset($url_3) ) echo $url_3; ?>" />
</p>
<input name="rc_mdm_widget_post" type="hidden" value="1" />
<?php
} ?>Sie können Ihr Dashboard jetzt neu laden. Wenn Sie Ihren Cursor auf die Widget-Metabox setzen, wird oben rechts ein Link âKonfigurierenâ angezeigt. Wenn Sie darauf klicken, wird das Optionsformular geladen. Und beim AusfĂŒllen der Felder und Speichern des Feeds werden die URLs in unserer Options-SQL-Tabelle gespeichert.
Schritt 3: Optionen abrufen
Der letzte Schritt besteht darin, die Feed-URLs zu ersetzen, die wir im ersten Teil des Tutorials fest codiert haben. Von Zeile 14 bis 18 in rc_mdm_create_my_rss_box() haben wir zwei URLs hinzugefĂŒgt. Ersetzen Sie es einfach durch:
// My feeds list
if ( !$my_feeds = get_option( 'rc_mdm_dashboard_widget_options' ) )
$my_feeds = array();Und das ist es! Es ist uns gelungen, ganz einfach benutzerdefinierte Optionen zu einem Dashboard-Widget hinzuzufĂŒgen.

