Slik legger du til flere felt i WordPress Media Uploader
Mens vi jobbet på et prosjekt der vi opprettet en veldig kul galleri drevet helt av WordPress vedlegg og en tilpasset posttype, fant vi et behov for å legge til flere felt til WordPress media opplasteren. Disse ekstra feltene tillot oss å gi hver fotograf kreditt ved å legge til fotografenavn og deres URL på hver bildeside. WordPress lagrer bilder som innlegg i vedlegget posttype, slik at det å legge til metadata er akkurat som å legge til egendefinerte felt. Fordi WordPress-vedleggene ikke har et tilpasset feltgrensesnitt, må vi legge til et egendefinert felt i mediaopploaderen for å samle metadataene. I denne artikkelen vil vi vise deg hvordan du legger til flere felt i WordPress Media Uploader.
Vi bruker følgende filtre for å gjøre endringen: attachment_fields_to_edit og attachment_fields_to_save
For et prosjekt som dette, anbefaler vi på det sterkeste at du oppretter et nettstedspesifikt plugin og legger til følgende kode. Du kan imidlertid fortsatt legge til kodene i temaets funksjoner.php-fil for å få det til å fungere.
/ ** * Legg til fotograf Navn og URL-felt til mediaopplasting * * @param $ form_fields array, felt som skal inkluderes i vedleggsformular * @param $ postobjekt, vedleggspost i database * @return $ form_fields, endret formfelt * / funksjon be_attachment_field_credit ($ form_fields, $ post) $ form_fields ['be-photographer-name'] = array ('label' => 'Fotografnavn', 'input' => 'text', 'value' => get_post_meta post-> ID, 'be_photographer_name', true), 'helps' => 'Hvis det er oppgitt, vil foto kreditt bli vist',); $ form_fields ['be-photographer-url'] = array ('label' => 'Fotograf URL', 'input' => 'text', 'value' => get_post_meta ($ post-> ID, 'be_photographer_url' sant), 'hjelper' => 'Legg til fotografens URL',); returner $ form_fields; add_filter ('attachment_fields_to_edit', 'be_attachment_field_credit', 10, 2); / ** * Lagre verdier av Fotograf Navn og URL i Media Uploader * * @param $ post array, postdata for database * @param $ vedlegg array, vedlegg felt fra $ _POST skjema * @return $ post array, endret post data * / funksjon be_attachment_field_credit_save ($ post, $ vedlegg) if (isset ($ attachment ['befotografnavn'])) update_post_meta ($ post ['ID'], 'be_photographer_name', $ attachment ['be-photographer -Navn'] ); hvis (isset ($ attachment ['be-photographer-url'])) update_post_meta ($ post ['ID'], 'be_photographer_url', esc_url ($ vedlegg ['be-photographer-url'])); returnere $ post; add_filter ('attachment_fields_to_save', 'be_attachment_field_credit_save', 10, 2); ?>
Koden ovenfor vil legge til to tekstfelter til Media Uploader kalt Fotografens navn og Fotografens URL. Du kan se det i skjermbildet nedenfor:
Forklaring av koden: I den første funksjonen bruker vi bare en matrise for å angi feltets etikett, inngangstype, verdi og hjelpetekst. Den andre funksjonen kontrollerer for å se om en verdi er angitt for disse feltene. Hvis verdien er angitt, oppdateres postmetadataene.
Hvis du vil vise feltene i vedleggsmalen din, limer du bare inn følgende koder i løkken:
echo get_post_meta ($ post-> ID, 'be_photographer_url', true);
Hvis du vil vise feltene for det uthevede bildet i arkivmalen din eller en annen mal, bruker du bare:
echo get_post_meta (get_post_thumbnail_id (), 'be_photographer_url', true);
Vi håper at du likte denne artikkelen. For de som ikke vet hvordan man lager et vedleggs mal, ikke bekymre deg. I neste artikkel vil vi dekke hvordan du lager et vedleggs mal i WordPress.
Hat Tips til Bill Erickson for å vise oss hvordan du gjør dette.