hvordan skabes der skik wordpress skrive /meta - kasser

, hvordan der kan skabes tradition wordpress skrive /meta - kasser,,,,, 32,,,,,,,,, 5,,,,,,, det cyber - mandag envato tuts + kurser vil blive reduceret til $3.- og' t miss.,, skabe, meta - kasser, er en afgørende del af wordpress, tema /stik af udvikling.det er en måde at tilføje et tiltrækkende redaktør til post - skærm, og undgår at tvinge brugerne til at påberåbe sig sædvane områder.hvis du nogensinde har skabt en sædvane efter type i wordpress, så har du nok gerne ville tilføje nogle yderligere oplysninger.ja, du kunne bruge skik områder, men den er grim.begyndt med skik meta - kasser er let, så lad os dykke i.,,,, det er skik meta - kasser?, en skik meta (eller skrive) boks er utrolig enkelt i teorien.det giver dig mulighed for at tilføje en speciel del af data til en stilling eller side i wordpress.,, jeg forestiller mig, at du arbejder på et tema til en kunde, der ønsker at katalogisere hans omfattende indsamling af koncert plakater.du straks begynde at kernen wordpress funktioner for at se, hvordan du kan organisere tema: hver post, vil udgøre en plakat, der er perfekt til at tilføje et billede, titel og beskrivelse.vi kan også bruge den, kategorier og mærkater, system i wordpress at organisere de plakater.men hvad nu, hvis vi ønsker at tilføje en ny type meta - data for "kunstner" i hver plakat?- tak.wordpress, har ikke noget med det, der kom ud af den kasse...hvilket bringer os til skik meta - kasser. en skik meta (eller skrive) boks er utrolig enkelt i teorien.det giver dig mulighed for at tilføje en speciel del af data til en stilling eller side i wordpress - er, at det kan være direkte i de fleste af de manglende sider i wp, så de let kan placere det inden for post - redaktør for let brug af andre typer.som jeg sagde i indledningen, kan du tilføje den samme slags "meta - data" til din post ved hjælp af den indbyggede, sædvane inden for en stilling eller side.der er ikke noget galt med det persay, men det er ikke en elegant og brugervenlig. i stedet vil du skabe en skik meta - kasse, som indeholder felter for alle deres data og redder det hele, når posten er offentliggjort.det er, hvad vi er her for.det er opdelt i tre store etaper:,, at meta - boks, hvor meta - boks, redde data (ikke - ja, der er en forkert måde), er det værd at bemærke, at mange af disse oplysninger kan også anvendes i praksis efter typer api (vi vil når dette punkt senere!men for at holde det drejede sig i dag, er vi nødt til at tilføje dette direkte til misligholdelse post redaktør. for avancerede læsere i publikum: ja, sædvane efter typer er, hvor vi vil hen med det her til sidst, men det er vigtigt at fælde nogle grundprincipper.plus, du kan bruge den skik meta - kasser i alle mulige steder, det er godt for nogen skal vide, noget i det pædagogiske arbejde i et tema er, functions.php, fil.det er ikke det rette sted til det.hvis du er ved at tilføje oplysninger til en stilling, er der en chance for at du vil have det der uanset deres front design.som sådan bør du denne kode, et sted, som ikke er afhængige af deres design: et stik af fil.,, trin 1, at meta - kasse, belejligt, wordpress giver en funktion for at tilføje meta - kasser til en given admin skærm: add_meta_box. codex indrejse er gjort for denne funktion, men her er en kort oversigt.en prototype:, <?folkesundhedsprogrammet aspektet add_meta_box ($id $titel, $callback - side, $sammenhæng, $prioritet, $callback_args)?>, $id, er http: //id - attribut i kassen.det er nyttigt, hvis du lader skik css eller javascript om redigering side til at klare de muligheder.ellers er det ikke betyder særlig meget. $titel, anbragt på toppen af meta - æske. $callback, er den funktion, som faktisk gør meta - æske.vi vil redegøre for dette i trin 2. $side, er, hvor du vil have meta - kasse skal vises.dette bør være en snor med "post" eller "side" eller "some_custom_post_type.,, $sammenhæng, er, hvor du vil have meta - kasse op."normalt sætter det under post redaktør. ""træk meta - æske til redigering af skærmen er ikke nærmere (af kategorier og mærkater osv.).avancerede "også sætte rubrik i samme kolonne som post - redaktør, men længere nede. $prioritet, fortæller wordpress placeringen af meta - kasse i sammenhæng.stor "," misligholdelse "eller" lav "sætter kassen på toppen i sin normale position eller til bunden.da alle meta - kasser er drag i stand til $prioritet, ikke er stor. endelig $callback_args, lader du videregive data til din $callback, funktion i form af et system.vi skal ikke bruge det her, men det kan være nyttigt for at få nogle oplysninger til meta - æske.sig til, hvis du har flere muligheder for at påvirke stik af, hvad der var udstillet i meta - æske.du kan give dem muligheder værdier gennem $callback_args, array., så vores, add_meta_box, vil se sådan ud:, <?folkesundhedsprogrammet aspektet add_meta_box ("min meta - box id", "min første meta - box", "cd_meta_box_cb", "post", "normale", "høj").> vi kan ikke bare åbne den i vores stik af sagen alene.det vil resultere i det hvide lærred til døden, og på fatal fejl: opfordring til udefinerede funktion.hvorfor?fordi vi ringede, add_meta_box, funktion, før wordpress var ladt.så vi er nødt til at anvende en wordpress klo, som er en del af stik af api - grænseflade.grundlæggende funktioner, fanget i en given wordpress aktion eller filter krog, så disse funktioner er fyret, da den krog belastninger.i at vores add_meta_box kald i en funktion, og at det fungerer på, add_meta_boxes, klo, vi undgå en skæbnesvanger fejl. vores kode at tilføje meta - æske til vores post skærm vil se sådan ud:, <?folkesundhedsprogrammet aspektet add_action ('add_meta_boxes "," cd_meta_box_add); funktion cd_meta_box_add() {add_meta_box ("min meta - box id", "min første meta - box", "cd_meta_box_cb", "post", "normale", "høj");}?>,, trin 2, således at den meta - boks, ovennævnte adfærdskodeks er nok til at tilføje den meta - boks, men nu er vi nødt til at gøre noget og rent faktisk tilføje områder.det er bare en html form kode blandet med en smule php at udvise reddede data.vi behøver ikke at omfatte den form, som wordpress gør det for os. du, snor, vi vedtog som $opkald, add_meta_box,?nu er vi ved at skabe en funktion med samme navn.denne funktion vil tage sig af alle opvisning i meta - æske. <?php funktion cd_meta_box_cb() (echo 'hvad du har her, er i den meta - kasse;}?>, er vi nødt til at tilføje flere områder til vores meta - box: en tekst, input, fald ned menu, og en check kasse.lad os starte med teksten input., at teksten input, <?php funktion cd_meta_box_cb() {?> < etiket til = "my_meta_box_text" > tekst etiket < /etiketten > < input type = "tekst" navn = "my_meta_box_text" id = "my_meta_box_text" /> <?folkesundhedsprogrammet)?>,, men hvad med faktisk visning af data?nå, så du vil se på trin 3, vi skal opbevare disse oplysninger i wp_postmeta tabel med update_post_meta funktion.denne funktion er to søster funktioner kaldet get_post_meta og get_post_custom, som tager data fra wp_postmeta., get_post_meta, kun griber fat i data fra et centralt, mens get_post_custom, tager det hele.fordi vi er kun ved hjælp af et område på dette punkt, vi bruger, get_post_meta,., bemærker også, at de, add_meta_box, funktion går en variabel til vores kald: $post, som er en post - objekt. <?php funktion cd_meta_box_cb ($post) {$værdier = get_post_custom ($post - > id); $tekst = isset ($værdier ['my_meta_box_text ']).esc_attr ($værdier ['my_meta_box_text '] [0]): "$udvalgte = isset ($værdier ['my_meta_box_select']).esc_attr ($værdier ['my_meta_box_select '] [0]): "$se = isset ($værdier ['my_meta_box_check']).esc_attr ($værdier ['my_meta_box_check '] [0]): "?> < p > < etiket til = "my_meta_box_text" > tekst etiket < /etiketten > < input type = "tekst" navn = "my_meta_box_text" id = "my_meta_box_text" værdi = "<?php echo $tekst;?> "/> < /p > <?folkesundhedsprogrammet)?>, at lægge den ned, <?php funktion cd_meta_box_cb ($post) {$værdier = get_post_custom ($post - > id); $tekst = isset ($værdier ['my_meta_box_text ']).esc_attr ($værdier ['my_meta_box_text '] [0]): "$udvalgte = isset ($værdier ['my_meta_box_select']).esc_attr ($værdier ['my_meta_box_select '] [0]): "$se = isset ($værdier ['my_meta_box_check']).esc_attr ($værdier ['my_meta_box_check '] [0]): "?> < p > < etiket til = "my_meta_box_text" > tekst etiket < /etiketten > < input type = "tekst" navn = "my_meta_box_text" id = "my_meta_box_text" værdi = "<?php echo $tekst;?> "/> < /p > < p > < etiket til =" my_meta_box_select "> farve < /etiketten > < udvælge navn =" my_meta_box_select "id =" my_meta_box_select "> < valgmulighed værdi =" røde "<?php udvalgte ($udvalgt "røde").> > red < /mulighed > < alternativ værdi = "blå" <?php udvalgte ($udvalgte, "blå").> > blå < /mulighed > < /udvælge > < /p > <?folkesundhedsprogrammet)?> med tillæg af et andet område, vi ændrede eller get_post_meta, ring til get_post_custom,, der returnerer en automatiseret system for alle efter sædvane nøgler og værdier.vi så bare få adgang til vores områder via deres navne.den ternære erklæringer, holde vores kode med folkesundhedsprogrammet advarsler (udefinerede indekser, og sådanne).vi dækker esc_attr funktion i trin tre, i fald ned, vi skal bruge en af wordpress er mest nyttige funktioner: udvalgte.dette skal sammenlignes med den første værdi, de data, vi reddede, med den anden, < alternativ >, værdi attribut.hvis de er den samme, funktion, vil echo, udvalgte = "udvalgt", som gør, at værdien udstilling om ned.sødt, og det sparer os for en masse, hvis eller ternære erklæringer.du kan også bruge den, selected(), funktion med radio knapper., hvorved check kasse, & det?php funktion cd_meta_box_cb() (//$stilling er allerede fastlagt, og indeholder en genstand: wordpress efter den globale $post; $værdier = get_post_custom ($post - > id); $tekst = isset ($værdier ['my_meta_box_text ']).- værdier ['my_meta_box_text ']: "" $udvalgte = isset ($værdier ['my_meta_box_select']).esc_attr ($værdier ['my_meta_box_select ']): "" $se = isset ($værdier ['my_meta_box_check']).esc_attr ($værdier ['my_meta_box_check ']): "; //bruger vi denne voldtægtsforbryder område senere, når opsparingen.wp_nonce_field ('my_meta_box_nonce "," meta_box_nonce)?> < p > < etiket til = "my_meta_box_text" > tekst etiket < /etiketten > < input type = "tekst" navn = "my_meta_box_text" id = "my_meta_box_text" værdi = "<?php echo $tekst;?> "/> < /p > < p > < etiket til =" my_meta_box_select "> farve < /etiketten > < udvælge navn =" my_meta_box_select "id =" my_meta_box_select "> < valgmulighed værdi =" røde "<?php udvalgte ($udvalgt "røde").> > red < /mulighed > < alternativ værdi = "blå" <?php udvalgte ($udvalgte, "blå").> > blå < /mulighed > < /udvælge > < /p > < p > < input type = "afkrydsningsfelt" id = "my_meta_box_check" navn = "my_meta_box_check" <?php kontrolleres ($kontrollere, om ").> /> < etiket til = "my_meta_box_check" > ikke kontrollerer denne < /etiketten > < /p > <?folkesundhedsprogrammet)?> igen wordpress giver praktisk funktion checked().det virker bare som om, selected(), hvor den første værdi (vores reddede data) til den anden, og som, tjekkede = "kontrol", hvis de er de samme.,, wp_nonce_field, tilføjer to skjulte områder til vores meta - æske.en af dem er en løgner.disse er tilfældige tråde af tal, som er gyldig på pr. bruger pr. blog grundlag for 24 timer.nonces er en måde at verificere, at de sørger for, at wordpress ikke gøre noget, medmindre anmodningen kom fra en meget specifik.med andre ord, vi vil ikke kom til at ajourføre vores data, som på en eller anden måde at drive vores redde funktion (se trin 3) i et andet sted end save_post krog, så vi tjekker, at det lige nu er gyldig, før jeg gør noget.,,, trin 3 redde data, regel nummer et, når noget i jeres database eller på deres område, ikke stoler på brugeren.selv hvis den bruger, er dig, for at redde vores data, vi skal basere sig på en anden wordpress klo:, save_post,.det virker bare, som om vores indsats klo ovenfor:, <?folkesundhedsprogrammet aspektet add_action ('save_post "," cd_meta_box_save)?>,, cd_meta_box_save, funktion, vil modtage et argument, post - id, og tage sig af rengørings - og redde alle vores data.det, save_post, hook brande efter ajourføringen eller redde udkast til knap er blevet ramt.så vi har adgang til alle de $_post, data, som omfatter vores meta - box områder i vores opsparing funktion.før vi kan gøre noget, er vi dog nødt til at gøre tre ting: se, om post - at kontrollere pædofil værdi, skabte vi først, og tjekke, at den øjeblikkelige bruger faktisk kan redigere post. <?folkesundhedsprogrammet aspektet add_action ('save_post "," cd_meta_box_save); funktion cd_meta_box_save ($post_id) (//kaution, hvis vi laver en auto - undtagen hvis (defineret (' doing_autosave) & & doing_autosave) afkast; //, hvis vores lige nu er der ikke, og vi kan ikke kontrollere det, kaution hvis (!isset ($_post ['meta_box_nonce '])



Previous:
Next Page: