WordPress Settings API, Del 8 Validering, Sanitisering og Input I

Vi har nådd den endelige artikkelen av serien. I det siste innlegget tok vi en titt på å innføre validering, sanitisering og et par grunnleggende inngangselementer som vi kan dra nytte av når vi bygger tilleggsopsider.

I denne artikkelen skal vi se på det endelige settet med tre alternativer, og hvordan å knytte dem til forsiden av temaet.

Før vi kommer i gang: Som i de siste parene, antar denne artikkelen at du har fulgt med resten av serien, har en arbeidskopi av prøvekoden installert, og er nå relativt kjent med Innstillinger API og temaalternativer. Hvis du er usikker på noen av de ovennevnte, anbefaler jeg på det sterkeste å lese resten av artiklene før du går inn i dette innlegget.


Elementtyper, fortsetter

avkrysnings

Tidligere i denne serien la vi til avmerkingsbokser. Vi kunne gå tilbake og revidere dem, men la oss holde konsistens med hva vi har gjort opp til dette punktet og introdusere nye alternativer. Når vi er ferdige, kan du gå tilbake til koden vi la til i begynnelsen av serien for gjennomgang.

Først, la oss introdusere bokselementet til sandbox_theme_initialize_input_examples funksjon:

add_settings_field ('Checkbox Element', 'Checkbox Element', 'sandbox_checkbox_element_callback', 'sandbox_theme_input_examples', 'input_examples_section');

Deretter må vi gå videre og definere tilbakeringingen som vi har angitt ovenfor. Legg til følgende funksjon for prosjektet ditt:

funksjon sandbox_checkbox_element_callback () $ options = get_option ('sandbox_theme_input_examples'); $ html = ''; $ html. = ''; ekko $ html;  // slutt sandbox_checkbox_element_callback

Vi vil se denne funksjonen på nytt øyeblikkelig, men først merk at jeg har lagt til et etikettelement ved siden av avmerkingsboksen. Avkrysningsbokser har ofte et element tilknyttet dem som også har råd til muligheten til å bli klikket for å utløse avmerkingsboksen. Dette gjør det enklere for brukerne å bytte et alternativ uten å måtte klikke nettopp i avmerkingsboksen.

For å knytte en etikett med en avkrysningsboks må du gi etiketten til Tilordne verdien av ID attributten til avkrysningsboksen som den er bundet til. Lett nok, rett?

Oppdater nå alternativsiden din, og du bør se det nye elementet synlig på opsjonssiden. Men for nå lagrer det faktisk ikke eller henter en verdi. Først, la oss introdusere en verdi attributt i avkrysningsruten. Dette er noe vilkårlig, men det er en vanlig praksis å gi et kontrollert element en verdi på '1.' La oss gjøre det nå:

$ html = '';

La oss da tenke gjennom nøyaktig hva som må skje når vi lagrer en verdi. Ideelt sett:

  • Brukeren kontrollerer elementet og sparer verdien
  • Siden oppdateres og avmerkingsboksen er merket av
  • Brukeren kontrollerer elementet for å deaktivere det og lagrer verdien
  • Siden oppdateres og avkryssingsboksen er ikke merket

Relativt klart, ikke sant? I stedet for å lese alternativet, sette opp en betinget, og sjekke forvær eller mangel på en verdi, kan vi dra nytte av WordPress ' sjekket funksjon.

Funksjonen aksepterer tre argumenter, kun den første er nødvendig:

  1. Den første verdien er en av verdiene som skal sammenlignes
  2. Den andre verdien for å sammenligne hvis den første verdien ikke er sant
  3. Hvorvidt å ekko eller ikke sjekk = "merket" til nettleseren

Så la oss oppdatere koden vår for å bruke denne funksjonen:

$ html = '';

Oppdater siden og sjekk alternativet, lagre og gjenta.

Hvis noe av dette virker litt forvirrende, kan du se gjennom forrige artikkel hvor vi dekker betydningen av hvert attributt på et alternativelement.

Til slutt, la oss oppdatere forsiden av temaet for å sjekke dette alternativet og gjengi en streng tekst basert på om alternativet er blitt sjekket. Husk at når vi opprettet elementet, ga vi det verdien av "1'. Dette betyr at når avkryssingsboksen er merket og serialisert, vil den opprettholde en verdi på én. Enkelt sagt, vi må skrive en betinget som kontrollerer verdien av alternativet, og deretter gjengir teksten riktig. I index.php, legg til denne koden:

 

Avkrysningsruten er sjekket.

Avkrysningsruten er ikke sjekket.

Gå nå tilbake til innstillingssiden, velg avkrysningsruten og oppdater siden din.

Som nevnt i begynnelsen av denne delen, se tilbake på "Visningsalternativer" som vi introduserte tidligere i denne serien, og se om det er mye klarere nå at vi har undersøkt hvordan å introdusere og administrere avkrysningselementer.

Radio knapper

Radio Knapper er elementer som er nyttige i grupper - du kommer aldri til å bruke en enkelt radioknapp. Saken om radioelementer er at de gir en måte å tillate brukere å velge en ut av et gjensidig eksklusivt sett med alternativer.

Av en eller annen grunn er radioknapper ofte en utfordring for WordPress-utviklere. Forhåpentligvis vil vi gjøre det så enkelt som mulig å ta med i prosjektene våre. Som med resten av eksemplene i denne serien, detaljer hva vi skal gjøre:

  • Vi ønsker å introdusere to alternativer som brukeren må velge. Vi vil gi dem svært generelle etiketter.
  • Det første alternativet vil være et radioelement med etiketten 'Alternativ One' og vil ha verdien av '1'.
  • Det andre alternativet vil være et radioelement med etiketten 'Alternativ To' og vil ha verdien av '2'.

Synes klart nok - la oss gå videre og legge til feltelementet på vår valgside:

add_settings_field ('Radio Button Elements', 'Radio Button Elements', 'sandbox_radio_element_callback', 'sandbox_theme_input_examples', 'input_examples_section');

Og la oss implementere radioelementets tilbakeringing. Først vil vi spesifisere koden, så vurderer vi den:

funksjon sandbox_radio_element_callback () $ options = get_option ('sandbox_theme_input_examples'); $ html = ''; $ html. = ''; $ html. = ''; $ html. = ''; ekko $ html;  // slutt sandbox_radio_element_callback

Det første du må legge merke til når du arbeider med radioknapper, er det de gjør ikke følg de typiske eksemplene på hvordan du setter inn ID og Navn egenskaper. Legg merke til at ID Attributtet er unikt og har ikke noe forhold til resten av attributter på elementet. Legg også merke til at hvert elements tilhørende label bruker ID for dens til Egenskap. Dette binder etiketten til radioknappen slik at brukerne kan klikke på etiketten for å velge radioelementet.

Legg merke til at Navn Attributene er de samme for hvert radioelement, men verdier er forskjellig. Dette er det som gjør at radioknappene gjensidig ekskluderer - hvert radioelement må ha det samme Navn men verdiene må være unike.

Til slutt kan vi sette opp en betingelse for hjemmesiden ved å sjekke elementets verdi. I temaet ditt functions.php, legg til følgende kodenavn:

 

Det første alternativet ble valgt.

Det andre alternativet ble valgt.

Last inn temaets hjemmeside, veksle alternativene og oppdatere. Du bør se de to setningene som endres basert på verdien av alternativelementene.

Velg boks

Det siste elementet som vi skal gjennomgå, er valgelementet. Dette elementet gir brukerne en rullegardinmeny med alternativer for å velge. La oss planlegge nøyaktig hva vi trenger å introdusere for dette elementet:

  • Definer et valgelement. I vårt eksempel behandler vi det som tre alternativer for tid.
  • Vi gir alternativene for "Aldri", "Noen ganger" og "Alltid".
  • Vi fyller ut et standardalternativ som vil bli satt når siden lastes.

På dette punktet i serien, bør dette være ganske rutinemessig. La oss komme i gang - først presenterer vi innstillingsfeltet:

add_settings_field ('Select Element', 'Select Element', 'sandbox_select_element_callback', 'sandbox_theme_input_examples', 'input_examples_section');

Deretter definerer vi tilbakeringingsfunksjonen. Gå gjennom koden og deretter diskuterer vi det etter eksemplet:

funksjon sandbox_select_element_callback () $ options = get_option ('sandbox_theme_input_examples'); $ html = ''; ekko $ html;  // slutt sandbox_radio_element_callback

Først oppdater oppsettsiden for å sikre at valgelementet vises. Forutsatt at det gjør det, la oss se gjennom koden ovenfor.

Når vi definerer seleksjonselementet, har vi gitt det en ID attributt og a Navn Tilskrive mye som vi gjør med resten av elementene som vi har demonstrert. Deretter har hvert alternativ en unik verdi og tekst som tilsvarer verdien. Selv om du ikke trenger å gjøre dette, har jeg vanligvis funnet det nyttig når du jobber i prosjektene mine. Til slutt har vi tatt fordel av valgt hjelper som WordPress tilbyr. Dette er mye som sjekket funksjon som vi har brukt i forrige eksempel bortsett fra at det er rettet mot valgte alternativer.

Det siste trinnet vil være å oppdatere forkant av temaet slik at det kontrollerer verdien av seleksjonselementet etter at det er lagret. Legg til følgende kodenavn til din index.php:

 

Vis aldri dette. Noe ironisk å selv vise dette.

Noen ganger viser dette.

Vis alltid dette.

Gå gjennom hjemmesiden til temaet ditt, endre opsjonene og oppdater deretter siden - du bør legge merke til tekstoppdateringen basert på alternativet du har valgt.


Konklusjon

Med det kommer vi endelig til slutten av denne serien. Innstillings-API er en kraftig funksjon av WordPress og gir oss muligheten til å implementere godt utformede, sikre tilleggssider, men det krever at vi bruker det riktig. Dessverre er dette nok en av de mest ignorerte funksjonene til plattformen av mange utviklere.

Til slutt var målet mitt å gå utviklere gjennom API fra begynnelsen av å forstå hvorfor det er viktig, til innstillinger, fra menysider, til flippert navigering, og hvordan man arbeider med hver enkelt elementtyper.

Endelig husk at du kan finne eksempelkoden på GitHub. Når du fortsetter å jobbe med innstillingsgrensesnittet eller finne en funksjon som er uklart, vennligst bidra. Jeg vil gjerne ha denne serien og eksempelkoden for å fortsette å gi en kilde til utdanning for WordPress-fellesskapet.


Beslektede kilder

  • sjekket
  • valgt
  • WordPress Settings Sandbox