Gjenbrukbare tilpassede metakasser Del 4 Bruke dataene

I del 1, del 2 og del 3 i vår tilpassede meta-boks mal-opplæringsserie lærte vi hvordan du lager en gjenbrukbar meta-boks som får all feltinformasjon fra en lettlest, lett å duplisere rekkefølge. Mange data er enkle å bruke ved å bare ekko meta-feltet i malen eller gjennom en funksjon, men noen av feltene er mer komplekse og krever litt mer finesse å bruke riktig. Denne opplæringen vil gi deg en grunnleggende ide om hvordan du bruker disse dataene og kan bli uttalt på utallige måter.


Få dataene

WordPress gir flere måter å få post-metadata på.

Utdata alle dataene samtidig

Den enkleste måten å vise dataene på er med the_meta () funksjon. Du kan slippe dette rett inn i din single.php mal, men det vil ikke gi deg de resultatene du sannsynligvis er etter. Det er en veldig bokstavelig utgang av dataene i en uordnet liste prefiks med nøkkelen til hvert felt som vist på bildet.

Få et enkelt felt

Den vanligste måten å få data lagret i et innleggsmetafelt er med get_post_meta () funksjon. Dette er en enkel måte å målrette mot et bestemt felt og lagre det i en variabel som kan brukes senere.

 $ Custom_text = get_post_meta ($ post-> ID, 'custom_text', true);

Ved å bruke denne koden i single post loop skulle teksten "Some text in a basic text input" inn i variabelen $ custom_text som deretter kan ekko eller filtreres, eller hva du vil gjøre med strengen. Når du bare jobber med et par felt, er dette trolig veien å gå, men i vårt eksempel jobber vi med 11 forskjellige felt. Kaller dem alle individuelt med denne funksjonen vil oppheve koden din unødvendig siden det er en måte å få alle dataene på en gang.

Få alle dataene på en gang

Min favoritt metode når jeg jobber med dette mange felt er å bruke get_post_custom () funksjon. Med denne funksjonen kan vi lagre alle meta-feltene for egendefinert innlegg i ett array og deretter hente dataene vi vil ha med matrise-nøkkelen.

$ post_meta_data = get_post_custom ($ post-> ID); vil gi oss en matrise som ser slik ut:

 Array ([custom_text] => Array ([0] => Enkelte tekst i en grunnleggende tekstinnføring) [custom_textarea] => Array ([0] => Et avsnitt eller to fra et tekstområde. elit. Donec tristique quam mi. Det er en selvsikkerhet som er en forutsetning for tristique. Det er bare en av de viktigste, og det er viktig å se på det. [Custom_select] => Array ([0] => en) [custom_radio] => Array ([0] => to) [custom_checkbox_group] => Array ([0] => a: 2: i: 0; s: 3: "en"; i: 1; s: 5: "tre";) [custom_post_id] => Array ([0] => 109) [custom_date] => Array ] [Custom_lider] => Array ([0] => 15) [custom_image] => Array ([0] => 413) [custom_repeatable] => Array ([0] => : 3: i: 0; s: 22: "tekst fra en repeterbar"; i: 1; s: 27: "mer tekst fra en repeterbar"; i: 2; s: 33: "repeterbare tekstfelt er gode! ";))

Som du kan se fra denne gruppen, lagrer WordPress hvert felt som en matrise fordi det er mulig å ha mer enn én verdi for det samme feltet. Du vil sikkert også legge merke til at noen få felt er serialisert. La oss grave mer til å håndtere dataene fra hvert felt og dekke hvordan du kan fikse det.


Enkle Input Fields

Tekst- og textarea-feltene er ganske enkle å håndtere. Du kan ekko dem med ett av følgende eksempler:

 ekko $ post_meta_data ['custom_text'] [0]; ekko apply_filters ('the_content', $ post_meta_data ['custom_textarea'] [0]); $ custom_checkox = $ post_meta_data ['custom_checkbox'] [0]; hvis ($ custom_checkbox == 'on') do_stuff (); 

Den første linjen vil bare sende strengen som-er, og den andre linjen vil konvertere linjeskiftet til avsnitt med WordPress ' innholdet filter. Du kan også bruke disse samme metodene for velg, radio, dato og skyvefelt også.

Den siste linjen viser hvordan du kan teste for å se om en avkrysningsboks er valgt eller ikke. Hvis det er, kan du utføre ulike funksjoner, eller et hvilket som helst antall ting.


Serialiserte data

Våre avmerkingsboksgruppefelt og repeterbare felt lagrer arrayer som blir serialisert i databasen. Før vi kan utdata disse dataene, må vi unserialisere den.

 $ custom_checkbox_group = unserialize ($ post_meta_data ['custom_checkbox_group'] [0]); $ custom_repeatable = unserialize ($ post_meta_data ['custom_repeatable'] [0]);

De unserialize () funksjon er en grunnleggende PHP-funksjon som konverterer våre data til en matrise som er enklere å bruke. Koden ovenfor gir meg to arrays som ser slik ut:

 Array ([0] => en [1] => tre) Array ([0] => tekst fra en repeterbar [1] => mer tekst fra en repeterbar [2] => repeterbar tekstfelt er flott!)

Nå kan jeg gå gjennom arraysene, men jeg vil bruke dem i min produksjon. Det er viktig å merke seg at i det repeterbare feltet, hvis du også gjør det sorterbart som vårt eksempel i del 3 av vår tilpassede meta-boks mal-opplæringen, vil nøklene i arrayet automatisk lagres i størrelsesorden 0, 1, 2, 3 , etc., og ikke i den rekkefølge de ble opprinnelig oppført før sortering av dem.

 ekko '
    '; foreach ($ custom_repeatable som $ streng) echo '& ltli>'. $ string. ''; ekko '
';

Dette eksempelet vil sende en uordnet liste over hver streng som er lagret i $ custom_repeatable matrise.


Spesialiserte data

For våre postliste- og bildefelt lagret vi en ID. Det kan være noen svært sjeldne tilfeller der du bare vil sende ut ID, men mest sannsynlig vil du bruke ID for å få mer informasjon.

 $ custom_post_id = $ post_meta_data ['custom_post_id'] [0]; ekko '' .get_the_title ($ custom_post_id). ''; $ custom_image = $ post_meta_data ['custom_image'] [0]; ekko wp_get_attachment_image ($ custom_image, 'miniatyrbilde');

Konklusjon

Denne opplæringen viser de mest grunnleggende måtene som du kan bruke dataene vi har lagret med våre gjenbrukbare tilpassede metakasser. Å kunne lagre ekstra data og bruke den i temaer og plugins åpner en helt ny verden av muligheter med WordPress. Hva vil du bruke det til?