Jadikan Widget Papan Pemuka Boleh Dikonfigurasikan
Beberapa minggu yang lalu kami melihat cara menambah metabox papan pemuka RSS tersuai pada pentadbiran. Hari ini, saya ingin menunjukkan kepada anda cara menambah pilihan boleh dikonfigurasikan pada kotak meta papan pemuka ini.
Inilah hasil daripada apa yang akan kami lakukan:
Fungsi yang paling penting dalam tutorial ini ialahĀ wp_add_dashboard_widget(). Ia adalah fungsi WordPress yang mendaftarkan widget papan pemuka. Kami telah melihat bahawa mendaftarkan widget dan fungsi yang mengeluarkan widget pada papan pemuka adalah agak mudah, tetapi kami tidak meliputi parameter terakhir fungsi ini. Pada asasnya, wp_add_dashboard_widget() mempunyai 4 parameter:
$widget_id
(integer) (diperlukan) slug pengecam untuk widget anda. Ini akan digunakan sebagai kelas css dan kuncinya dalam tatasusunan widget.
Lalai: Tiada
$widget_name
(rentetan) (diperlukan) ini ialah nama widget anda akan dipaparkan dalam tajuknya.
Lalai: Tiada
$callback
(rentetan) (diperlukan) Nama fungsi yang anda cipta yang akan memaparkan kandungan sebenar widget anda.
Lalai: Tiada
$control_callback
(rentetan) (pilihan) Nama fungsi yang anda cipta yang akan mengendalikan penyerahan borang pilihan widget (konfigurasi) dan juga akan memaparkan elemen borang.
Lalai: Tiada
Seperti yang anda lihat, parameter keempat adalah yang bertanggungjawab untuk pilihan "konfigurasi". Apabila mengisi parameter ini, anda memberitahu WordPress untuk memuatkan fungsi tertentu untuk mengkonfigurasi widget. Ia secara automatik mencipta pautan "konfigurasi" dalam tajuk kotak meta apabila anda meletakkan kursor di atasnya.
Langkah 1: Daftar Fungsi Configure Options
Jadi, langkah pertama ialah mengubah suai panggilanĀ wp_add_dashboard_widget() dan menambah nama fungsi pilihan konfigurasi dalam parameter terakhir. FungsiĀ rc_mdm_register_widgets() anda, seharusnya menjadi:
/**
* 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');
Kami hanya menambah "rc_mdm_configure_my_rss_box" pada parameter terakhir.
Langkah 2: Cipta Fungsi Configure Options
Langkah ini tidak rumit. Apa yang perlu kita lakukan ialah mencipta medan borang yang disimpan ke dalam tatasusunan. Untuk berbuat demikian, kami akan menggunakanĀ pilihan_kemas kini(). Kami tidak perlu mencipta borang penuh kerana WordPress menciptanya untuk kami. Kami hanya perlu mendaftarkan medan. Perkara yang sangat baik untuk disebut, ialah WordPress secara automatik menambah nonce pada borang yang menjadikan borang selamat dan mengelakkan masalah keselamatan yang berpotensi. Berikut ialah kod fungsiĀ rc_mdm_configure_my_rss_box() kami ( ingat? Ini parameter ke-4 yang kami takrifkan dalamĀ wp_add_dashboard_widget()Ā ).
/**
* 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
} ?>
Anda kini boleh memuatkan semula papan pemuka anda, dan jika anda meletakkan kursor anda pada kotak meta widget, anda akan melihat pautan "konfigurasi" muncul di bahagian atas sebelah kanan. Apabila anda mengklik padanya borang pilihan dimuatkan. Dan apabila mengisi medan dan menyimpan URL suapan disimpan dalam jadual SQL pilihan kami.
Langkah 3: Mendapatkan Pilihan
Langkah terakhir ialah menggantikan URL suapan yang kami kod keras dalam bahagian pertama tutorial. Dari baris 14 hingga 18 dalamĀ rc_mdm_create_my_rss_box() kami menambahkan dua URL. Gantikannya dengan:
// My feeds list
if ( !$my_feeds = get_option( 'rc_mdm_dashboard_widget_options' ) )
$my_feeds = array();
Dan itu sahaja! Kami berjaya menambah pilihan tersuai pada widget papan pemuka yang senyap dengan mudah.