Website-Suche

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.