Własna podstrona – Ustawienia w praktyce – Settings API (część 8)

Własna podstrona - Ustawienia w praktyce – Settings API (część 8)

No, po poprzednich wpisach umiemy już wszystko! Potrafimy dodać własne pola do sekcji na stronach, potrafimy dodawać własne sekcje! Czego nam brakuje? Jak pisałem w poprzedniej części kursu, czasami okazuje się, że istniejące sekcje to za mało. Potrzebujemy czegoś więcej, więc nauczyliśmy się dodawać sekcje i do nich pola. Ale jeżeli sekcja to również za mało? Jeżeli uznamy, że nasza wtyczka lub motyw potrzebują osobnej podstrony w Ustawieniach?

Oczywiście korzystamy z Settings API WordPressa, bo to jedyna słuszna droga. I tworzymy swoją własną podstronę, bo czemu nie, skoro możemy… I potrzebujemy… 🙂 Jak ostatnio zaczynamy od nowa z naszą wtyczką, aby poprzedni kod nie zaciemniał tego, co robimy teraz. Do dzieła!

Dodajemy podstronę

Na potrzeby naszego kursu umówmy się, że stworzyliśmy super wtyczkę, która wymaga mnóstwa ustawień i uzasadnia to, stworzenie swojej podstrony. Tworzymy więc taką podstronę i nazwiemy ją „Test Opcje” ponieważ tak się nazywa nasza wtyczka testowa.

Tak to wygląda. Nie będę tutaj opisywał, jak się dodaje podstronę, jest to nieskomplikowane i wierzę, że każdy sobie poradzi. A w razie potrzeby – dajcie znać, mogę i ten temat szerzej opisać. Póki co, wracamy do roboty.

No, może jeszcze parę słów: jak widzicie, akcja admin_init pozostaje chwilowo bezrobotna, do dodawania stron zaprzęgliśmy akcję admin_menu, która do tego właśnie służy.

Co teraz się dzieje? Mamy swoją stronę i bardzo się nią cieszymy. Brakuje nam jednak ustawień na tej stronie. Zaczniemy od sekcji a następnie dodamy do niej pierwsze pole. Nic skomplikowanego, byle kod był krótki i jasny. Zaczynamy:

Zwróćcie uwagę na to, jak mało to się różni. Tak naprawdę, jedyne co nas odróżnia to $id strony! Używamy ‚testopcje’, ponieważ tak zarejestrowaliśmy stronę (linijka 15 w powyższym listingu). I już tylko tyle! Czy aby na pewno?

To nie koniec

No niestety, to nie wszystko. Ale nie ma się czym przerażać! Zostało naprawdę niewiele do zrobienia. Póki co, odświeżmy sobie stronę z tym kodem, dostaniemy… dokładnie to samo, co wcześniej! Jak że to tak? Ano, inne strony Ustawień dbały o to, aby wyświetlać sekcje i pola w sekcjach. Nasza strona dumnie wyświetla tytuł i opis ale o nic więcej nie dba… Szybciutko to zmieniamy, dopisując:

Znacznik <form> jest obowiązkowy. Metoda przesyłania danych to „post”, a wywoływana akcja to „options.php” co pozwoli WordPressowi zrobić za nas resztę. Następnie mamy tajemniczą funkcję settings_fields. Tajemniczą dlatego, że dotychczas z niej nie korzystaliśmy. Jest świetna, bo odpowiada za to, aby dołożyć do formularza wszystkie niezbędne elementy. W kodzie HTML wygląda to tak:

Kolejna „magiczna” funkcja, do_settings_sections wyświetla nam sekcje ze strony. A submit_button wyświetla przycisk do wysłania formularza!

Teraz nasz kod wygląda tak:

I „robi” taką stronę:

testowe opcje i ustawienia wordpress settings API

I, jak widać, to nie tylko wygląda – to również działa. Zrobienie na przykład drugiej sekcji, jest dosyć trywialne. Odpowiedzialny fragment (za obie sekcje):

Na podstronie nic nie trzeba robić, druga sekcja i druga opcja – po prostu się pojawią.

Zaraz, zaraz, a co jeśli… o tym może w następnym odcinku.