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.

