Kolejne ustawienia – Ustawienia w praktyce – Settings API (część 5)

To co robimy dalej? Przechodzimy do kolejnej pozycji w menu „Ustawienia”, a więc do „Pisanie”. Tutaj jest ciekawiej i będzie więcej zabawy, obiecuję 🙂

Na początek, przypomnijmy sobie, gdzie jesteśmy z kodem. Szczególnie dopóki jest niezbyt długi i nie tracimy na przypominanie sobie ani miejsca, ani czasu. Kod się będzie rozrastał i będziemy go modyfikować, aby go upraszczać i skracać. Ale o tym trochę później.

Teraz źródło:

To dobry początek, mamy już jedno ustawienie. Zróbmy sobie kolejne!

Pisanie – sekcje

Na tej stronie mamy więcej sekcji, niż tylko domyślną („default”), dlatego napisałem, że będzie więcej zabawy. Ale, uwaga! Sekcje inne niż default występują w pojedynczej instancji WordPressa. Jeżeli używasz multisite network – czyli wielu witryn na jednym WordPressie, nie zobaczysz tych sekcji. A to nie koniec niespodzianek… No dobrze, na początek – co to za sekcje? Ano, jest domyślna, „default”. Kolejna to publikacja przez e-mail „post_via_email” a ostatnia to usługi aktualizacji „remote_publishing”. I ta ostatnia to niespodzianka taka, że ta sekcja oznaczona jest jako „deprecated” i jak spróbujemy do niej coś dopisać to… wyświetli się to w sekcji „default”. Ale i tak to zrobimy, żeby było widać, co WordPress zrobi z nieobecną sekcją, nie musicie mi wierzyć na słowo.

Co możemy tam dodać?


Co chcemy, to jasne. Ja postanowiłem, że na potrzeby naszego wpisu, dodamy trzy proste pola tekstowe. W sekcji domyślnej będzie to „Domyślny początek”, czyli lead naszego artykułu, będzie to textarea a nie input text, więc poznamy coś nowego (w pewnym sensie, oczywiście), dla publikacji przez e-mail dodamy domyślny dodatek do tytułu a dla usług aktualizacji dodamy pole na adres e-mail na który, po wykonanej usłudze aktualizacji, WordPress wyśle informację o tym, że to zrobił.

Zabieramy się za programowanie! Dodajemy pola:

I je rejestrujemy:

Nasza anonimowa funkcja przy dodawaniu akcji mocno się rozrosła…

Możemy zauważyć tu pewną powtarzalność. Wyświetlanie pola tekstowego wygląda identycznie… więc nieco to przebudujemy, wydzielając funkcję dla pola tekstowego. Od razu wydzielimy też funkcję dla textarea, bo niby czemu nie? I dodamy sobie funkcję, która zwróci nam tytuł dla znacznika label razem z ID. Bo możemy. I teraz całość wygląda tak:

A jak wygląda wynik naszego kodu? Ano tak:

Ustawienia Settings API Pisanie/Writing - rezultat działania kodu

Zwróćcie uwagę na to, że pojawiły się wszystkie trzy dodatkowe pola, ale pole, które miało się pojawić w sekcji „remote_publishing” trafiło do sekcji „default” ponieważ twórcy WordPress określili sekcję „remote_publishing” jako przestarzałą (deprecated) i już jej nie używamy. Ale pole nam nie zginie i, co najważniejsze, nadal poprawnie działa, zapisując i odczytując wartości.

A można to jeszcze bardziej uprościć?

No jasne, że tak! Akurat w tym przypadku możemy zrobić coś takiego:

Rezultat jest identyczny a odczytać łatwiej. I łatwiej znaleźć co się gdzie dodaje. No i nie zapomnimy o rejestracji zmiennej. Upraszcza to wiele. Więc przejdźmy do następnej części, gdzie obsłużymy resztę stron w Ustawieniach.