Możliwość konfiguracji widżetu pulpitu nawigacyjnego
Kilka tygodni temu widzieliśmy, jak dodać do administracji niestandardowy metabox panelu RSS. Dzisiaj chciałbym pokazać, jak dodać konfigurowalne opcje do metaboksu tego pulpitu nawigacyjnego.
Oto wynik tego, co zamierzamy zrobić:
Najważniejszą funkcją opisaną w tym samouczku jest wp_add_dashboard_widget(). To funkcja WordPressa rejestrująca widżet pulpitu nawigacyjnego. Widzieliśmy już, że rejestracja widżetu i funkcji wyświetlającej widżet na pulpicie nawigacyjnym jest dość łatwa, ale nie omówiliśmy ostatniego parametru tej funkcji. Zasadniczo wp_add_dashboard_widget() ma 4 parametry:
$widget_id
(integer) (wymagane) błąd identyfikujący Twój widżet. Będzie ona używana jako klasa css i jej klucz w tablicy widżetów.
Wartość domyślna: Brak
$nazwa_widgetu
(string) (wymagane) to nazwa, którą widget będzie wyświetlał w nagłówku.
Wartość domyślna: Brak
$oddzwonienie
(string) (wymagane) Nazwa utworzonej przez Ciebie funkcji, która wyświetli rzeczywistą zawartość Twojego widżetu.
Wartość domyślna: Brak
$control_callback
(string) (opcjonalnie) Nazwa utworzonej przez Ciebie funkcji, która będzie obsługiwać przesyłanie opcji widżetu (konfiguracji) do formularzy, a także będzie wyświetlać elementy formularza.
Wartość domyślna: Brak
Jak widać czwarty parametr odpowiada za opcje „konfiguruj”. Wypełniając ten parametr, informujesz WordPress, aby załadował określoną funkcję w celu skonfigurowania widżetu. Automatycznie tworzy łącze „konfiguruj” w tytule metaboxa, gdy umieścisz nad nim kursor.
Krok 1: Zarejestruj funkcję konfiguracji opcji
Zatem pierwszym krokiem jest modyfikacja wywołania wp_add_dashboard_widget() i dodanie w ostatnim parametrze nazwy funkcji opcji konfiguracyjnych. Twoje funkcje rc_mdm_register_widgets() powinny wyglądać następująco:
/**
* 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');Po prostu dodaliśmy „rc_mdm_configure_my_rss_box” do ostatniego parametru.
Krok 2: Utwórz funkcję konfiguracji opcji
Ten krok nie jest skomplikowany. Wszystko, co musimy zrobić, to utworzyć pola formularza przechowywane w tablicy. Aby to zrobić, użyjemy opcji update_option(). Nie musimy tworzyć pełnego formularza, ponieważ WordPress tworzy go za nas. Musimy tylko zarejestrować pola. Warto wspomnieć, że WordPress automatycznie dodaje do formularza wartość jednorazową, która sprawia, że formularz jest bezpieczny i pozwala uniknąć potencjalnych problemów związanych z bezpieczeństwem. Oto kod naszej funkcji rc_mdm_configure_my_rss_box() (pamiętasz? To czwarty parametr, który zdefiniowaliśmy w 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
} ?>Możesz teraz ponownie załadować swój pulpit nawigacyjny, a jeśli umieścisz kursor na metaboksie widżetu, w prawym górnym rogu pojawi się link „konfiguruj”. Po kliknięciu zostanie załadowany formularz opcji. A podczas wypełniania pól i zapisywania adresów URL kanałów zapisywane są w naszej tabeli opcji SQL.
Krok 3: Pobieranie opcji
Ostatnim krokiem jest zastąpienie adresów URL kanałów, które zakodowaliśmy na stałe w pierwszej części samouczka. Od linii 14 do 18 w rc_mdm_create_my_rss_box() dodaliśmy dwa adresy URL. Po prostu zamień go na:
// My feeds list
if ( !$my_feeds = get_option( 'rc_mdm_dashboard_widget_options' ) )
$my_feeds = array();I to wszystko! Udało nam się łatwo dodać niestandardowe opcje do widżetu deski rozdzielczej.

