Benutzerdefiniertes Dropdown-Feld zur Mediengalerie hinzugefügt; Wie bekomme ich es richtig zu speichern?

Ich verwende den folgenden Code, um ein paar benutzerdefinierte Felder zu Medienanlagen hinzuzufügen:

//Add custom fields for attachments function kgal_add_custom_fields_to_artwork( $form_fields, $post ) { $form_fields['kgal_artwork_artist'] = array( 'label' => 'Artist', 'input' => 'html', 'html' => get_artists_dropdown( $post->ID ), 'application' => 'image', 'exclusions' => array( 'audio', 'video' ), ); $form_fields['kgal_artwork_medium'] = array( 'label' => 'Medium', 'input' => 'text', 'value' => get_post_meta( $post->ID, 'kgal_artwork_medium', true ), 'application' => 'image', 'exclusions' => array( 'audio', 'video' ), ); return $form_fields; } add_filter( 'attachment_fields_to_edit', 'kgal_add_custom_fields_to_artwork', 10, 2 ); function kgal_save_custom_fields_for_artwork( $post, $attachment ) { if( isset( $attachment['kgal_artwork_artist'] ) ) update_post_meta( $post['ID'], 'kgal_artwork_artist', $attachment['kgal_artwork_artist'] ); if( isset( $attachment['kgal_artwork_medium'] ) ) update_post_meta( $post['ID'], 'kgal_artwork_medium', $attachment['kgal_artwork_medium'] ); return $post; } add_filter( 'attachment_fields_to_save', 'kgal_save_custom_fields_for_artwork', 10, 2 ); // output artists dropdown function get_artists_dropdown( $id ) { if( !$id ) return; $artists = get_posts( array( 'post_type' => 'artist', 'posts_per_page' => -1, 'post_status' => 'publish', ) ); if( !$artists ) return; $output = ""; foreach( $artists as $artist ) $output .= 'post_id, false ) . ' value="' . $artist->post_id . '">' . $artist->post_title . ''; $output .= ''; return $output; } 

Wenn ich jetzt in die Medienbibliothek gehe, um ein Bild zu bearbeiten, aktualisiert sich das Textfeld zB kgal_artwork_medium perfekt, dh das Speichern von Gif-Spins und nachdem ich zu einem anderen Bild navigiert habe, sehe ich den richtigen Wert. Ich habe auch das Feld in meiner Anhangsseite Vorlage angezeigt, und es zeigt sich gut auf der Vorderseite.

Wenn es jedoch um das HTML-Feld kilal_artwork_artist geht, werden die Dinge unordentlich. Das Drop-down-Menü zeigt sich gut, alle Künstler werden wie erwartet mit Namen versehen, und wenn ich einen Künstler auswähle, wird das Sparfuchs ebenfalls gut abgespielt, aber die eigentlichen Daten scheinen nicht gespeichert zu werden ein anderes Bild und zurück, zeigt das Drop-Down immer wieder den letzten Künstler in der Liste an. Auch für den Künstler erscheint am Frontend auf der Attachment-Seite nichts.

Es könnte ein Problem mit meiner ausgewählten () function geben, die ich hier verpasse, oder vielleicht speichere ich nicht den richtigen Wert … das Dropdown muss den Künstlernamen anzeigen, aber seine ID speichern, damit ich kann die ID verwenden, um alle Daten anzuzeigen, die ich in meiner Vorlage benötige.

Ich bin zu diesem Zeitpunkt total verloren, aber ich weiß, dass ich wirklich, wirklich nah dran bin und ich versuche seit ein paar Monaten, dies zum Laufen zu bringen, bis zu dem Punkt, an dem ich total frustriert bin. Jede Hilfe in diesem Zusammenhang wird IMMER geschätzt.

Solutions Collecting From Web of "Benutzerdefiniertes Dropdown-Feld zur Mediengalerie hinzugefügt; Wie bekomme ich es richtig zu speichern?"