Spis treści
Czyścimy naszą wtyczkę z kodu i zabieramy się za dodawanie strony i podstron. Dodamy trzy, żeby było ciekawiej. I zadbamy o to, aby pierwsza podstrona nazywała się inaczej niż menu główne (o to często pytają początkujący developerzy, więc w ten sposób będziemy udawać tych odrobinę bardziej doświadczonych).
Zabieramy się do dzieła i po chwili kod wygląda tak:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 |
<?php /* Plugin Name: Test opcje Plugin URI: https://wpkurs.pl/ Description: Wtyczka, która pokazuje jak stworzyć Ustawienia za pomocą WordPress API Author: Łukasz Nowicki Version: 0.1.1 Author URI: https://lukasznowicki.info/ Requires at least: 5.4 Tested up to: 5.4 Requires PHP: 7.4 */ function viewSubPage( $id, $description = '' ) { ?> <div class="wrap"> <h2><?php echo get_admin_page_title(); ?></h2> <?php if ( '' !== $description ) : ?> <p class="description"><?php echo $description; ?></p><?php endif; ?> <hr> <form method="post" action="options.php"> <?php settings_fields( $id ); do_settings_sections( $id ); submit_button(); ?> </form> </div> <?php } add_action( 'admin_menu', function () { add_menu_page( 'Tytuł strony', 'Test opcje', 'manage_options', 'testopcje_glowna', function ( $args ) { }, 'dashicons-thumbs-up', 20 ); add_submenu_page( 'testopcje_glowna', 'Test opcje - Ustawienia', 'Ustawienia', 'manage_options', 'testopcje_glowna', function () { viewSubPage( 'testopcje_glowna', 'Opis ustawień' ); }, 10 ); add_submenu_page( 'testopcje_glowna', 'Test opcje - Opcje', 'Opcje', 'manage_options', 'testopcje_opcje', function () { viewSubPage( 'testopcje_opcje', 'Tym razem opis opcji' ); }, 20 ); add_submenu_page( 'testopcje_glowna', 'Test opcje - Właściwości', 'Właściwości', 'manage_options', 'testopcje_wlasciwosci', function () { viewSubPage( 'testopcje_wlasciwosci', 'A na koniec opis właściwości' ); }, 30 ); } ); add_action( 'admin_init', function () { } ); |
Zwróćcie, proszę, uwagę na funkcję viewSubPage, dzięki niej widzicie, jakie to jest powtarzalne, parametryzowane i proste do użycia. To od razu zarejestrujmy sobie sekcje. Powiedzmy dwie na pierwszej stronie i po jednej na drugiej i trzeciej. To będzie takie coś:
1 2 3 4 5 6 |
add_action( 'admin_init', function () { add_settings_section( 'ustawienia_sekcja1', 'Sekcja nr 1 w Ustawieniach', '', 'testopcje_glowna' ); add_settings_section( 'ustawienia_sekcja2', 'Sekcja nr 2 w Ustawieniach', '', 'testopcje_glowna' ); add_settings_section( 'opcje_sekcja1', 'Sekcja nr 1 w Opcjach', '', 'testopcje_opcje' ); add_settings_section( 'wlasciwosci_sekcja1', 'Sekcja nr 1 we Właściwościach', '', 'testopcje_wlasciwosci' ); } ); |
Nawet nie wstawiałem funkcji, po prostu pusty łańcuch oznaczający, że nie chcę nic renderować w sekcji (tytuł wyrenderuje WordPress). Wynik:
Przyznacie sami, że to już robi się coraz bardziej trywialne i już nie mogę Was zaskoczyć, prawda?
Dodanie właściwych pól do tych sekcji jest równie trywialne jak poprzednio. WordPress Settings API to prosty, choć naprawdę świetny mechanizm, który powinniśmy wykorzystywać na co dzień. Czy coś nam jeszcze pozostało? Chyba już nic więcej. Dodanie pól, jako ćwiczenie, zostawiam dla chętnych. Ja mogę się podzielić jeszcze z Wami grafikami, które pozwolą Wam zapamiętać dokładnie, co jest co w opcjach WordPress.
O tym w następnej, ostatniej już części kursu.