Własne pole w WordPress. Advanced Custom Fields w akcji.

Czasa­mi jest tak, że potrze­bu­je­my stworzyć stronę nie tylko z treścią główną, ale z dodat­ko­wy­mi boksa­mi umiesz­czo­ny­mi w dowol­nym miejscu. Jeżeli dobrze znamy HTML i CSS to nie ma większe­go proble­mu. Wystar­czy stworzyć klasy, przypi­sać do konte­ne­rów i po krzyku. Co w sytuacji, gdy oddaje­my stronę klien­to­wi, który się nie zna? Na 100% po kilku dniach zadzwo­ni telefon z rekla­ma­cją, że wszyst­ko się rozsy­pa­ło. Aby temu zapobiec musimy stworzyć "własne pole".

Własne pole – Advanced Custom Fields

Dzięki milio­nom wtyczek do WordPress'a nie musimy za dużo progra­mo­wać, żeby strona wyglą­da­ła jak chcemy. Dodat­ko­we pola (ale nie tylko) zapew­nia wtycz­ka Advan­ced Custom Fields autor­stwa Eliota Condon'a.

Po zainsta­lo­wa­niu przecho­dzi­my menu "Własne pola" i zakła­da­my nową grupę pól.

Na szczę­ście nie wszyst­kie pola są wymaga­ne. Ważne jest by nadać etykie­tę i nazwę pola, taką by nam się jedno­znacz­nie kojarzy­ła, a także wybrać rodzaj pola z listy. Do wyboru mamy m.in.:

  • Tekst
  • Pole teksto­we
  • Liczbę
  • Email
  • Hasło
  • Edytor WYSIWYG
  • Obrazek
  • Plik
  • Różne pola wyboru
  • Linki

Jest tego trochę. W projek­cie, który teraz robiłem najbar­dziej przydał mi się edytor WYSIWYG oraz przycisk wyboru.

WYSIWYG

Wybie­ra­jąc WYSIWYG otrzy­mu­je­my pole z wbudo­wa­nym domyśl­nym wizual­nym edyto­rem kodu. Zawsze trzeba mieć na uwadze wygodę klien­ta. Klient zadowo­lo­ny nie dzwoni po godzi­nach! Alter­na­ty­wą do WYSIWYG jest "Obszar teksto­wy". To pole przyda nam się, gdy mamy do wstawie­nia kilka linii tekstu bez ozdob­ni­ków.

Przycisk wyboru

Bardzo cieka­we rozwią­za­nie, gdy klient np. przez jakiś czas nie chce pokazy­wać fragmen­tu szablo­nu. W moim przypad­ku wyłączy­łem wyświe­tla­nie sekcji z ostat­ni­mi wpisa­mi na blogu – po prostu jeszcze ich nie ma. Ale możemy też to zasto­so­wać do wyświe­tla­nia komuni­ka­tu o awarii lub promo­cji.

Gdzie to ma się wyświetlić?

Ważne jest by dobrze pole przypi­sać do treści. Możemy jest dodać do wybra­nej strony, szablo­nu, określo­ne­go typu lub rodzi­ca strony.  Pole może być widocz­ne do użytkow­ni­ka o wybra­nej roli, albo wpisu w odpowied­niej formie lub katego­rii. Opcji jest na prawdę dużo. Dodat­ko­wo możemy zrobić wyklu­cza­nie wg powyż­szych lub stworzyć grupę zasad.

Opcje

Autor na prawdę zadbał o szcze­gó­ły. Każde pole ma listę opcji. Np. nr w kolej­no­ści. Jeżeli nasze boksy wyświe­tla­ją się w pewnej kolej­no­ści, to warto zadbać by pola też miały taką kolej­ność. Dodat­ko­wo, jeżeli pole jest ważniej­sze od głównej treści, to możemy je ustawić tuż za tytułem. Do wyboru jest też boczny panel. Jeżeli nasze pole ma zastą­pić inne domyśl­ne, to możemy je wybrać z bogatej listy.

Czas na kod

Tyle o tym, co można zrobić na podsta­wo­wym pozio­mie. Teraz trzeba wartość pola wyświe­tlić w szablo­nie.

Są dwie znane mi możli­wo­ści. Poprzez tzw short­co­de albo za pomocą funkcji the_​field() lub get_​field() w kodzie php szablo­nu.

the_​field() i get_​field()

Jeżeli progra­mu­je­my stronę szablo­nu i wiemy gdzie na pewno ma znaleźć się treść z pola to wstawia­my ją na sztyw­no za pomocą kodu

[cc lang="php"][/​cc]

Możemy też stworzyć warunek spraw­dza­ją­cy czy wartość istnie­je

[cc lang="php"]

[/​cc]

Drugim parame­trem funkcji the_​field i get_​field jest $post_​id gdzie możemy wskazać inny od aktual­ne­go numer postu, katego­rii czy taxono­mii.

Różni­ca między funkcja­mi jest taka, że wartość get_​field możemy przypi­sać do zmien­nej, a the_​field służy bezpo­śred­nio do wyświe­tla­nia zawar­to­ści.

shortcode

Jeżeli zosta­wia­my możli­wość wyświe­tla­nia danych klien­to­wi w edyto­rze, to musi on się posłu­żyć shortcode'm:

[cc lang="php"][acf field="{$field_name}"][/cc]

lub

[cc lang="php"][acf field="{$field_name}" post_id="{$post_id}"][/cc]

Dodaj komentarz

Witryna wykorzystuje Akismet, aby ograniczyć spam. Dowiedz się więcej jak przetwarzane są dane komentarzy.