Nasze pierwsze ustawienia – Ustawienia w praktyce – Settings API (część 4)

No dobrze, wszyscy pamiętają, gdzie byliśmy ostatnio?

Dla przypomnienia wrzucam pełen kod źródłowy na którym pracujemy. Dodam tylko, jeżeli komuś nie chce się wracać, że robimy sobie wtyczkę w której dodamy opcje wszędzie, gdzie się uda.

A uda się wszędzie… stop, bzdura. Nie uda się wszędzie, w każdym razie nie metodami WordPress Settings API a innymi, siłą rzeczy, w tym kursie nie będziemy się zajmować.

Chcemy dodać jakąś opcję w sekcji „default” na stronie „general”, czyli „Ustawienia” -> „Ogólne”. To, co widzimy najczęściej, gdy klikniemy „Ustawienia”. Co tam sobie dodamy? Cokolwiek. Dajmy na to – motto strony. W oryginale jest tytuł i podtytuł a my chcemy mieć motto. No dobrze, zróbmy sobie motto. Czego będziemy potrzebować? Pola (Field) oraz jego rejestracji… Bo stronę i sekcję już mamy, prawda?

Widzimy tutaj, że używamy funkcji add_settings_field. Jak sama nazwa wskazuje, służy do tego, aby dodać pole. Przeanalizujmy sobie jej parametry:

Ładnie to wygląda, prawda? Opiszmy sobie teraz te parametry.


$id to identyfikator naszego pola. Będzie używany jako id w <label>, jako id i name w <input> oraz, jako nazwa opcji przy pobieraniu jej przez funkcję get_option.
$title to, oczywiście, tytuł naszego pola, który będzie zapisany po lewej stronie. Dodałem <label> ponieważ to pole tekstowe i po prawej stronie nie będzie żadnego dodatkowego tekstu. Gdyby to był checkbox albo radio, prawdopodobnie label zostałby użyty z prawej strony a nie tutaj – wszystko zależy od sytuacji.
$callback to funkcja, która zostanie wywołana do wyświetlenia naszego pola. Ponownie skorzystałem z funkcji anonimowej, aby zrobić to jak najszybciej. Zwróćcie uwagę na pojawiający się argument $args w którym dostajemy ID. Zrobiłem tak, bo tak się to powinno robić (parametryzować), w tym przypadku moglibyśmy to pominąć i po prostu wpisać nasze ID.
$page to nasza strona. Pamiętacie? Ustawienia, ogólne to „general” a więc tak to wpisujemy.
$section to oczywiście sekcja. W tym przypadku mamy jedną sekcję, „default” i taka jest wartość domyślna. Moglibyśmy to pominąć, ale chcę dodać kolejny parametr, więc nie pomijam…
$args a to jest właśnie zmienna $args z funkcji wyświetlającej pole. Można sobie dodać tutaj cokolwiek, ja przekazałem ID.

Odświeżamy sobie naszą stronę i… wielkie nic. Dlaczego? Dlatego, że musimy zarejestrować nasze pole! WordPress musi wiedzieć, że chcemy z niego korzystać. Robimy to za pomocą funkcji „register_setting„:

Pamiętacie? „general„, to nasza strona a „to_blog_motto” id naszego pola. Podsumowując, nasz kod wygląda teraz tak:

A rezultat tak:

Własne ustawienia: motto bloga (WordPress Settings API)

Teraz możecie wpisać motto strony i po kliknięciu „Zapisz zmiany” nasze pole też się zapisze. A jego zawartość wyświetli po odświeżeniu strony. Jeżeli chcielibyście to pole wykorzystać gdzieś na stronie, można to zrobić na przykład tak:

I to zadziała! A co dalej? Zapraszam do kolejnej części 🙂