Wyjaśniamy pojęcia i budujemy wtyczkę – Ustawienia w praktyce – Settings API (część 3)

Pojęcia

W trakcie budowania naszych ustawień, musimy tak naprawdę dobrze znać dwa pojęcia. Sekcje (sections) i pola (fields).

Z kronikarskiej dokładności, muszę dodać, że występują też grupy (groups). Grupy są swego rodzaju naddatkiem, z którego możemy skorzystać, ale nie jest to wymagane. A w większości projektów jest to niepotrzebne utrudnienie.

Z tego korzystamy przy bardzo dużych, zaawansowanych projektach. Czyli jeżeli umiesz takie pisać… to Ty mnie naucz Settings API a nie ja Ciebie.

Sekcje

Sekcje traktujmy jako zbiór pól. Weźmy sobie dla przykładu Ustawienia WordPress, podstronę „Dyskusja”. Zauważmy, że trochę niżej znajdziemy „Obrazki profilowe”. To nam wyznacza sekcję, która jest zbiorem różnych opcji dla obrazków profilowych. To jest nasza sekcja. Logiczny zbiór ustawień na jakiś temat.

Pola

To jest pojedyncze pole z ustawieniami. Czyli, na przykład, w powyżej wspomnianej sekcji, może to być „Wyświetlanie obrazków profilowych”. Znajdziecie tam checkbox, który jest polem. Poniżej będzie „Najwyższa dozwolona kategoria” która też jest jednym polem, z opcją wyboru z kilku możliwości (tzw. pola typu radio).

Te pojęcia są najważniejsze. Z czasem pojawią się kolejne, ale będziemy je sobie wyjaśniać na bieżąco.

Budujemy wtyczkę

Zazwyczaj tworzenie wtyczki zaczynam od załadowania auto-loadera dla klas. Nasza wtyczka jednak nie będzie tak skomplikowana, aby tego wymagała. Jednak w większości projektów, starajmy się budować wtyczki właśnie w taki sposób. Dzięki klasom możemy separować metody, grupować np. widoki czy kontrolę wartości (sanityzacja). Nazwałem swoją wtyczkę mało odkrywczo – „Test opcje”. Może i mało odkrywczo, ale oddaje istotę problemu, prawda?

Zaczynamy

Zaczynamy od stworzenia katalogu „test-opcje” w katalogu /Twój-WordPress/wp-content/plugins/ lub w innym, jeżeli wtyczki trzymasz gdzie indziej. U mnie będzie to „C:\bin\domeny\wpsingle.local\public_html\wp-content\plugins\test-opcje” i tego będę się trzymał w trakcie opisywania. Zapewne masz swój WordPress w innym katalogu, w takim przypadku trzeba zmodyfikować początek. W tymże katalogu tworzę plik test-opcje.php i wpisuję do niego:

I przechodzę do sekcji „Wtyczki” w menu administratora. Na liście już widzę swoją wtyczkę:

Wtyczka pokazująca WordPress Settings API na liście

Aktywujemy wtyczkę i… nic się nie dzieje. Oczywiście wtyczka jest aktywna, ale nic nie robi i jest to naturalne, jeszcze nic jej zrobić nie kazaliśmy. A co każemy?

Wybieramy sobie menu

Na początku zabierzemy się za menu najbardziej naturalne dla ustawień, czyli „Ustawienia” właśnie. No ale nie ma takiej strony, jak „Ustawienia”, mamy Ogólne, Pisanie, Czytanie i tak dalej i tym podobne. To od czego zaczniemy? Od góry! Menu „Ogólne” wygląda wystarczająco zachęcająco, więc sobie ogólnie dodamy tam jakieś swoje ustawienie.

Ta strona ma identyfikator „general” i jedną sekcję, która nazywa się „default”. Czyli wiemy, gdzie się podłączyć. To się podłączmy!

Czy ma znaczenie kiedy będę dodawać ustawienia?

Niewielkie, ale owszem. Przyjęło się, że robimy to w akcji (więcej o akcjach) „admin_init„. Ponieważ robimy to w najszybszy możliwy sposób, użyjemy funkcji anonimowej:

Oczywiście metod przypisywania akcji jest o wiele więcej, w linkowanym artykule akurat piszę o filtrach, ale przypisywanie akcji działa identycznie, poza tym, że używamy add_action.

Dobra, mamy to. Co dalej? Zapraszam do kolejnej części.