WordPress kan utvides med alskens plugins mellom himmel og jord, som tilfører ulike typer funksjonalitet. Ett slikt plugin er Advanced Custom Fields. Pluginet er blant dem som er så gode og allsidige at det benyttes i nær sagt alle prosjekter.
I denne guiden vil du få en kort introduksjon til pluginet, hvorfor det er gull verdt, og noen eksempler på bruksområder. Aller først; hva er Advanced Custom FIelds?
Denne guiden forutsetter bruk av Pro-versjonen av ACF, som koster 150 kroner ved bruk på ett nettsted. Les mer her. Denne versjonen er langt å foretrekke framfor gratisversjonen.
Dette er Advanced Custom Fields (ACF)
WordPress kommer med en innebygget mulighet for å opprette såkalte custom fields. Her kan du opprette unike felt for hver enkelt side eller innlegg, praktisk hvis du for eksempel skal ha en tabell med nøkkelinformasjon. Men hvor praktisk det enn er, støter man fort på begrensningene. Som at dataene ikke uten videre kan spres utover siden eller innlegget ditt, men må vises samlet. Eller at dataene ikke kan benyttes på tvers av innlegg.
ACF bygger videre på denne funksjonaliteten, og gjør det enkelt å opprette felter som kan tilknyttes til alle typer sider, innlegg og annet, og også benyttes på tvers av ulike elementer på siden. Men heller enn å prøve å forklare, la oss se på et (kanskje litt lite gjennomtenkt) eksempel.
Eksempel
Tenk deg at du har en lang rekke innlegg og/eller sider som alle inneholder en variabel som fra tid til annen endrer seg, for eksempel navnet på mobiloperatøren din. Uten noen innsats i forkant vil du få jobben med å endre navnet på operatøren alle steder hvor det forekommer hver gang du bytter operatør, noe som kan bety en stor jobb. Så hva da om du heller kunne opprette ett felt i administrasjonspanelet, for deretter å hente det inn alle steder hvor det forekommer? Der har vi ACF i et nøtteskall.
Det vi nå aller først gjør er å opprette en innstillingsside. Denne kan inneholde en ubegrenset mengde felter og innstillinger, og vi oppretter en ved å kalle en ACF-funksjon i fila functions.php
. Fila finner du på rot i tema-mappen. Tilføy følgende:
//Registrerer innstillingsside
if( function_exists('acf_add_options_page') ) {
acf_add_options_page();
}
Du vil nå se er at det har dukket opp et Options-valg i hovedmenyen i administrasjonspanelet. Ved å kikke på menyvalget får du beskjed om at siden er tom, fordi det ikke er tilknyttet noe til den. Her vil vi nå legge inn muligheten for å registrere navnet på en mobiloperatør.
Rett over det nye Options-valget i det innfelte bildet ser du valget Egendefinerte felt. Det er her alle ACF-felt registreres, så klikk på dette valget. Det du nå gjør er dette:
- Trykk Legg til ny ved overskriften Feltgrupper.
- Gi feltgruppen et navn i øverste felt, for eksempel
Mobiloperatør
. - Under Regler velger du at
Alternativer-side
er lik
Options
. Dette sørger for å vise feltene dersom siden du viser er Options, altså den vi nettopp opprettet. - Trykk nå den blå Legg til felt-knappen like ovenfor Regler.
- Skriv inn en Feltetikett, for eksempel
Mobiloperatør
. Når du nå velger neste felt vil du se at ACF automatisk foreslår feltnavnetmobiloperator
. Med mindre du har andre ønsker, kan dette bare stå. Dette er navnet vi benytter for å vise verdien, og er dermed litt ekstra viktig. - Felttype lar vi stå som
Tekst
. - Trykk nå den blå knappen Publiser ute til høyre.
Hvis du igjen går til Options-siden vil du nå se det nye feltet vi har opprettet.
Her kan du nå skrive inn navnet på en valgfri mobiloperatør og trykke den blå knappen (med det noe misvisende navnet) Lagringsvalg. Verdien er dermed lagret, og klar til bruk.
For å vise verdien benytter du følgende kodesnutt:
<?php the_field('mobiloperator', 'option'); ?>
Vil du vise verdien direkte i innlegg vil det være nødvendig å lage en liten shortcode som fikser biffen.
Enormt bruksområde
Dette eksempelet viser kun en ørliten del av hva ACF er i stand til. Pluginet gjør det enkelt å bygge store og komplekse innstillingssider for hele nettsteder, hvor hele sidens innhold kan endres på, utvides og forandres på uten at det må skrives èn eneste kodesnutt.
I tillegg til å bygge innstillingssider, kan feltene du oppretter også hektes på annet type innhold. De kan kobles til innlegg, slik at de vises i innleggseditoren, de kan kobles til sider, og vises i sideeditoren. De kan vises for alle typer innlegg, eller bare noen, alle typer sider, eller bare noen typer sidemaler. Mulighetene for å bygge sider som er skreddersydde for ethvert formål blir dermed lekende lett.
Jeg håper dette fikk deg litt nysgjerrig på Advanced Custom Fields. Det kommer flere og mer dyptgående ACF-guider fremover. Følg med!