Podstrona wyglądu – Ustawienia w praktyce – Settings API (część 9)

Przepraszam, co? Podstrona wyglądu? No, nie moja wina. Mamy takie menu, które nazywa się „Wygląd”. Tam ustawiamy wszystko, co związane z naszym motywem. Można tam wybrać motyw a reszta pól bywa uzależniona od tego, jaki motyw wybierzemy.

Zazwyczaj jest tam „Dostosuj” i „Edytor motywu” – co najmniej. Bywa, że jest więcej. „Widgety”, „Menu”, „Tło”… zależy co tam nasz motyw obsługuje. A jeżeli budujemy specjalistyczny motyw i ma on opcje, które nie mieszczą się w żadnej z tych kategorii? Oczywiście, stworzymy swoją własną podstronę. I ponownie, zaczniemy od „czystej” wtyczki.

Dodajemy podstronę

Oczywiście, że tak. Dokładnie od tego zaczniemy. Zresztą… dobrze, nie chcę przedłużać ani robić z tego wiedzy tajemnej, szczególnie, że na pewno większość z Was się już domyśliła. Weźmiemy sobie kod z poprzedniego wpisu i wprowadzimy w nim jedną (JEDNĄ!) zmianę. Naprawdę, tak niewiele trzeba… kto zauważy, gdzie jest ta zmiana?

Oczywiście! Jedyna zmiana znajduje się w linijce nr 15. Tam, zamiast strony „rodzica” (było: options-general.php) wprowadzamy themes.php, co oznacza, że „rodzicem” tej podstrony jest „Wygląd” właśnie. I to wszystko! Koniec zmian. Cały kod działa idealnie i bez zarzutu. Głównie dlatego, że korzystamy z Settings API WordPressa. Gdybyśmy tworzyli swoje autorskie rozwiązanie, przenosiny nie byłyby wcale takie łatwe. No chyba, że poświęcilibyśmy sporo czasu na stworzenie przenośnego kodu, którego funkcjonalność sprowadziła by się do… tak, do istniejącego już API. Settings API konkretnie 🙂 Tak że byłaby to robota całkowicie niepotrzebna.

Wygląda to tak:

test opcje w menu wyglad settings api wordpress

Widoczna zmiana (poza oczywistą, przenieśliśmy się do innego menu) to fakt, że nasza podstrona nie jest ostatnia, jak to było w menu „Ustawienia”. I nie będzie, choćbyśmy jako $position ustawili 9999999999, ponieważ WordPress celowo, jako ostatnią pozycję, wstawia edytor motywów.

Teraz to już chyba… nie, nadal nie wszystko. Ale będzie coraz szybciej i łatwiej, obiecuję.