I del 1, del 2 och del 3 i vår anpassade meta box template handledning serie lärde vi oss hur man gör en återanvändbar metakassa som får all fältinformation från en lättläst, lätt att duplicera array. Många data är enkla att använda genom att bara eka meta-fältet i din mall eller genom en funktion, men några av fälten är mer komplexa och kräver lite mer finess att använda korrekt. Denna handledning ger dig en grundläggande uppfattning om hur du använder dessa data och kan beskrivas på otaliga sätt.
WordPress erbjuder flera sätt att få post-metadata.
Det enklaste sättet att visa data är med the_meta ()
fungera. Du kan släppa det här direkt i din single.php mall, men det kommer inte ge dig de resultat som du förmodligen är efter. Det är en mycket bokstavlig utgång av data i en obestämd lista prefixad med nyckeln i varje fält som visas på bilden.
Det vanligaste sättet att få data som sparas i ett meta-fält är med get_post_meta ()
fungera. Det här är ett enkelt sätt att rikta in ett specifikt fält och lagra det i en variabel som kan användas senare.
$ Custom_text = get_post_meta ($ post-> ID, 'custom_text', true);
Genom att använda den här koden inom den enskilda postslingan skulle texten "Några text i en grundläggande textinmatning" sättas in i variabeln $ custom_text
som sedan kan echoes eller filtreras, eller vad du än vill göra med strängen. När du bara hanterar ett par fält är det förmodligen vägen att gå, men i vårt exempel arbetar vi med 11 olika fält. Ringa dem alla individuellt med den här funktionen skulle uppblåsa din kod onödigt eftersom det finns ett sätt att få alla data på en gång.
Min favorit metod när jag jobbar med dessa många områden är att använda get_post_custom ()
fungera. Med den här funktionen kan vi lagra alla meta fält för anpassade inlägg i en grupp och hämta sedan de data vi vill ha med matrisnyckeln.
$ post_meta_data = get_post_custom ($ post-> ID);
kommer att ge oss en matris som ser ut så här:
Array ([custom_text] => Array ([0] => En del text i en grundläggande textinmatning) [custom_textarea] => Array ([0] => Ett stycke eller två från ett textområde. elit. Donec tristique quam mi. Det här är en viktig fråga, men det är inte bara en fråga om det, men det är också viktigt att du vet vad det är. [Custom_select] => Array ([0] => en) [custom_radio] => Array ([0] => två) [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 ] => Array ([0] => 413) [custom_repeatable] => Array ([0] => a : 3: i: 0; s: 22: "text från en repeterbar"; i: 1; s: 27: "mer text från en repeterbar"; i: 2; s: 33: "Repeterbara textfält är bra! ";))
Som du kan se från den här rutan, lagrar WordPress varje fält som en array eftersom det är möjligt att ha mer än ett värde för samma fält. Du kommer också nog att märka att några av fälten är serialiserade. Låt oss gräva mer för att hantera data från varje fält och täcka hur man fixar det.
Text- och textareafälten är ganska enkla att hantera. Du kan echo dem med ett av följande exempel:
echo $ post_meta_data ['custom_text'] [0]; echo apply_filters ('the_content', $ post_meta_data ['custom_textarea'] [0]); $ custom_checkox = $ post_meta_data ['custom_checkbox'] [0]; om ($ custom_checkbox == 'på') do_stuff ();
Den första raden kommer helt enkelt att utföra strängen som-är, och den andra raden kommer att konvertera raden raster till avsnitt med WordPress " innehållet
filtrera. Du kan också använda samma metoder för val, rad, datum och sliderfält.
Den sista raden visar hur du kan testa för att se om en kryssruta har valts eller inte. Om det är, kan du utföra olika funktioner eller ett antal saker.
Våra kryssrutor gruppfält och repeterbara fält lagrar arrayer som serialiseras i databasen. Innan vi kan mata ut dessa data måste vi unserialize den.
$ custom_checkbox_group = unserialize ($ post_meta_data ['custom_checkbox_group'] [0]); $ custom_repeatable = unserialize ($ post_meta_data ['custom_repeatable'] [0]);
De unserialize ()
funktionen är en grundläggande PHP-funktion som omvandlar våra data till en array som är lättare att använda. Koden ovan kommer att ge mig två arrangemang som ser ut så här:
Array ([0] => en [1] => tre) Array ([0] => text från en repeterbar [1] => mer text från en repeterbar [2] => repeterbar textfält är bra!)
Nu kan jag gå igenom arraysna men jag vill använda dem i min produktion. Det är viktigt att notera att i det repeterbara fältet, om du också gör det sorterbart som vårt exempel i del 3 i vår egen meta-boxsmall handledning, kommer tangenterna i arrayen automatiskt att lagras i storleksordningen 0, 1, 2, 3 , etc. och inte i den ordning som de ursprungligen var inskrivna innan de sorterades.
eko "
Detta exempel kommer att mata ut en orörd lista över varje sträng som sparats i $ custom_repeatable
array.
För våra inläggslista och bildfält sparade vi ett ID. Det kan finnas några väldigt sällsynta fall där du bara vill skriva ut ID, men troligtvis vill du använda ID för att få mer information.
$ custom_post_id = $ post_meta_data ['custom_post_id'] [0]; echo '' .get_the_title ($ custom_post_id). ''; $ custom_image = $ post_meta_data ['custom_image'] [0]; echo wp_get_attachment_image ($ custom_image, "thumbnail");
Denna handledning visar de mest grundläggande sätten att du kan använda de data som vi har lagrat med våra återanvändbara anpassade metakasser. Att kunna spara extra data och använda den i teman och plugins öppnar en helt ny värld av möjligheter med WordPress. Vad ska du använda det för?