webentwicklung-frage-antwort-db.com.de

Erweitern des neuen Media Uploader in WordPress 3.5

In der aktuellen Version von WordPress ist es recht einfach, die Felder für Anhänge mit dem attachment_fields_to_edit-Filter zu erweitern, aber in der neuesten Version WordPress 3.5 RC2 funktioniert es nicht. Wir können es mit benutzerdefinierten Metafeldern erweitern, aber um dies zu tun, müssen Sie jeden Anhang in Media TB bearbeiten. Ich habe mich gefragt, ob es möglich ist, Felder in Anhangdetails im modalen Feld mit der Medienbibliothek zu erweitern http://i.imgur.com/GIsJj.png (Entschuldigung für einen Link, aber ich kann nicht Bild hinzufügen, nicht genug Ruf;))

Vielen Dank für jede Hilfe.

5
rzepak

Sie können Anhängen Eingaben und Felder hinzufügen, indem Sie sich in attachment_fields_to_edit einhängen. Dadurch werden sowohl dem modalen als auch dem Anhang-Editor Felder hinzugefügt. Der Haken, den ich gefunden habe, ist, dass WordPress (falls jemand PLMK anders erlebt hat) die zusätzlichen Felddaten nicht speichert, so dass Sie sich in ein paar andere Elemente einklinken müssen.

Ich habe ein Codebeispiel hinzugefügt, um Ihnen eine Vorstellung davon zu geben, was Sie tun könnten.

add_filter( 'attachment_fields_to_edit', 'xf_attachment_fields', 10, 2 );

function xf_attachment_fields( $fields, $post ) {

 $meta = get_post_meta($post->ID, 'meta_link', true);
 $fields['meta_link'] = array(
    'label' => 'More Media Management',
    'input' => 'text',
    'value' => $meta,
     // 'html' => '<div class="meta_link"><input type="text" /></div>',
   'show_in_edit' => true,
 );
 return $fields;
}
add_filter( 'attachment_fields_to_save', 'xa_update_attachment_meta', 4);

function xa_update_attachment_meta($attachment){
  global $post;
  update_post_meta($post->ID, 'meta_link', $attachment['attachments'][$post->ID]['meta_link']);
}

add_action('wp_ajax_save-attachment-compat', 'xa_media_xtra_fields', 0, 1);
function xa_media_xtra_fields() {
  $post_id = $_POST['id'];
  $meta = $_POST['attachments'][$post_id ]['meta_link'];
  update_post_meta($post_id , 'meta_link', $meta);
  clean_post_cache($post_id);
}
3
Rezen

Sie sollten Attachment_fields_to_edit weiterhin verwenden können, diese Felder werden jedoch jetzt auch dem modalen Fenster hinzugefügt. Sie können festlegen, dass ein Feld nur im Modal oder nur auf der Bearbeitungsseite angezeigt wird, indem Sie die Parameter "show_in_edit" oder "show_in_modal" verwenden. Beide sind boolesche Werte und beide standardmäßig true. Schauen Sie sich dieses Trac-Ticket an, um das Verhalten zu erklären: http://core.trac.wordpress.org/ticket/22759#comment:1

Sie sollten sich bewusst sein, dass ihnen in den Klassennamen anscheinend "compat-field-" vorangestellt ist.

1
eddiemoya