Warning: Undefined array key "hu" in /home/host1693024/word-press.day/htdocs/www/875348534534.php on line 1660
Tegye konfigurálhatóvá a műszerfali widgetet

Tegye konfigurálhatóvá a műszerfali widgetet


Néhány héttel ezelőtt láthattuk, hogyan adhatunk egyéni RSS-műszerfali metaboxot az adminisztrációhoz. Ma szeretném megmutatni, hogyan adhat hozzá konfigurálható opciókat ehhez az irányítópult metaboxhoz.

Íme az eredménye annak, amit tenni fogunk:

Az oktatóanyag legfontosabb funkciója a wp_add_dashboard_widget(). Ez a WordPress funkció, amely regisztrálja az irányítópult widgetet. Azt már láttuk, hogy a widget és a widgetet kiadó függvény regisztrálása a műszerfalon meglehetősen egyszerű, de ennek a funkciónak az utolsó paraméterére nem tértünk ki. Alapvetően a wp_add_dashboard_widget() 4 paraméterrel rendelkezik:

$widget_id
(egész) (kötelező) a widget azonosító jele. Ez lesz a css osztálya és kulcsa a widgetek tömbjében.
Alapértelmezés: Nincs

$widget_name
(karakterlánc) (kötelező) ezt a nevet fogja megjeleníteni a widget a fejlécében.
Alapértelmezés: Nincs

$visszahívás
(karakterlánc) (kötelező) Az Ön által létrehozott függvény neve, amely megjeleníti a modul tényleges tartalmát.
Alapértelmezés: Nincs

$control_callback
(karakterlánc) (opcionális) Az Ön által létrehozott függvény neve, amely kezeli a widget-beállítások (konfigurációs) űrlapok beküldését, és megjeleníti az űrlapelemeket is.
Alapértelmezés: Nincs

Mint látható, a negyedik paraméter a „konfigurálás” opciókért felelős. A paraméter kitöltésekor utasítja a WordPress-t, hogy töltsön be egy adott függvényt a widget konfigurálásához. Automatikusan létrehoz egy „konfigurálás” hivatkozást a metabox címében, amikor fölé viszi a kurzort.

1. lépés: Regisztrálja a Konfigurációs beállítások funkciót

Tehát az első lépés az, hogy módosítsa a wp_add_dashboard_widget() hívást, és adja hozzá a konfigurálási beállítások függvényeinek nevét az utolsó paraméterhez. Az Ön rc_mdm_register_widgets() függvényeinek a következőknek kell lenniük:

/**
 * 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');

Egyszerűen hozzáadtuk az „rc_mdm_configure_my_rss_box” kifejezést az utolsó paraméterhez.

2. lépés: Hozza létre a Konfigurációs beállítások funkciót

Ez a lépés nem bonyolult. Mindössze annyit kell tennünk, hogy létrehozunk egy tömbben tárolt űrlapmezőket. Ehhez az update_option() paramétert használjuk. Nem kell teljes űrlapot létrehoznunk, mivel a WordPress elkészíti helyettünk. Csak regisztrálnunk kell a mezőket. Nagyon jó megemlíteni, hogy a WordPress automatikusan egy nonce-t ad az űrlaphoz, amely biztonságossá teszi az űrlapot és elkerüli az esetleges biztonsági problémákat. Itt van az rc_mdm_configure_my_rss_box() függvényünk kódja (emlékezz? Ez a 4. paraméter, amelyet a wp_add_dashboard_widget()-ben határoztunk meg).

/**
 * 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
} ?>

Most újratöltheti az irányítópultot, és ha a kurzort a widget metaboxra viszi, a jobb felső sarokban megjelenik egy „konfigurálás” hivatkozás. Ha rákattint, betöltődik az opciók űrlapja. A mezők kitöltésekor és a takarmányozási URL-címek mentésekor az opciók SQL táblázatunkban tárolódnak.

3. lépés: Lehetőségek lekérése

Az utolsó lépés az oktatóanyag első részében kódolt feed URL-ek cseréje. Az rc_mdm_create_my_rss_box() 14. és 18. sorai között két URL-t adtunk hozzá. Egyszerűen cserélje ki:

// My feeds list
if ( !$my_feeds = get_option( 'rc_mdm_dashboard_widget_options' ) )
    $my_feeds = array();

És ez az! Egyszerűen sikerült egyéni beállításokat hozzáadnunk egy irányítópult-widgethez.