Hoe voeg je extra velden toe aan de WordPress Media Uploader
Tijdens het werken aan een project waarbij we een zeer coole galerij ontwikkelden die volledig werd aangedreven door WordPress-bijlagen en een aangepast berichttype, vonden we het nodig om extra velden toe te voegen aan de WordPress media-uploader. Met deze aanvullende velden konden we elke fotograaf crediteren door de naam van de fotograaf en hun URL op elke afbeeldingspagina toe te voegen. WordPress slaat afbeeldingen op als berichten in het type bijlagepost, dus het toevoegen van metadata is net als het toevoegen van aangepaste velden. Omdat de WordPress-bijlagen geen gebruikersinterface voor aangepaste velden hebben, moeten we aangepaste velden toevoegen aan de media-uploader om de metadata te verzamelen. In dit artikel laten we u zien hoe u extra velden kunt toevoegen aan de WordPress Media Uploader.
We zullen de volgende filters gebruiken om de wijziging aan te brengen: attachment_fields_to_edit en attachment_fields_to_save
Voor een project als dit raden we u ten zeerste aan om een sitespecifieke plug-in te maken en de volgende code toe te voegen. U kunt echter nog steeds de codes toevoegen aan het functiephp.php-bestand van uw thema om het te laten werken.
/ ** * Voeg fotograafnaam en URL-velden toe aan media-uploader * * @param $ form_fields-array, velden die moeten worden opgenomen in bijlagevorm * @param $ post-object, bijlage record in database * @return $ form_fields, gewijzigde formuliervelden * / functie be_attachment_field_credit ($ form_fields, $ post) $ form_fields ['be-photographer-name'] = array ('label' => 'Naam fotograaf', 'invoer' => 'tekst', 'waarde' => get_post_meta ($ post-> ID, 'be_photographer_name', true), 'helps' => 'Indien aanwezig, wordt fotokrediet getoond',); $ form_fields ['be-photographer-url'] = array ('label' => 'URL van de fotograaf', 'invoer' => 'tekst', 'waarde' => get_post_meta ($ post-> ID, 'be_photographer_url', waar), 'helpt' => 'URL van fotograaf toevoegen',); return $ form_fields; add_filter ('attachment_fields_to_edit', 'be_attachment_field_credit', 10, 2); / ** * waarden van fotograafnaam en URL opslaan in media-uploader * * @param $ post array, de postgegevens voor database * @param $ bijlagearray, bijlagevelden van $ _POST-formulier * @return $ post array, gewijzigde berichtgegevens * / function be_attachment_field_credit_save ($ post, $ attachment) if (isset ($ attachment ['be-photographer-name'])) update_post_meta ($ post ['ID'], 'be_photographer_name', $ attachment ['be-photographer' -naam'] ); if (isset ($ attachment ['be-photographer-url'])) update_post_meta ($ post ['ID'], 'be_photographer_url', esc_url ($ attachment ['be-photographer-url'])); return $ post; add_filter ('attachment_fields_to_save', 'be_attachment_field_credit_save', 10, 2); ?>
De bovenstaande code voegt twee tekstvelden toe aan de Media Uploader met de naam Naam fotograaf en URL van de fotograaf. U kunt dat in de onderstaande schermafbeelding zien:
Uitleg van de code: In de eerste functie gebruiken we eenvoudig een array om het veldlabel, invoertype, waarde en hulptekst op te geven. De tweede functie is controleren of er een waarde is ingesteld voor die velden. ALS de waarde is ingesteld, worden de metagegevens van de post bijgewerkt.
Als u de velden in uw bijlagensjabloon wilt weergeven, plakt u eenvoudig de volgende codes in de lus:
echo get_post_meta ($ post-> ID, 'be_photographer_url', true);
Als u de velden voor uw aanbevolen afbeelding in uw archiefsjabloon of in een andere sjabloon wilt weergeven, gebruikt u gewoon:
echo get_post_meta (get_post_thumbnail_id (), 'be_photographer_url', true);
We hopen dat je dit artikel leuk vond. Voor degenen die niet weten hoe ze een bijlagensjabloon moeten maken, maak je geen zorgen. In het volgende artikel zullen we ingaan op het maken van de sjabloon van een bijlage in WordPress.
Hat Tip aan Bill Erickson voor het tonen van ons hoe dit te doen.