library wordpress media

wordpress - media library hp



Preseleccionar imágenes al abrir el administrador de medios de WordPress 3.5 (3)

Creo que esos tipos logran hacerlo: https://wordpress.stackexchange.com/questions/76125/change-the-default-view-of-media-library-in-3-5/76213#76213 Pero esto no t trabajo para mi Tengo el jquery en el pie de página de mi publicación / edición, publicación / nueva, pero eso simplemente no funciona para mí :(

Estuve jugando con el nuevo administrador de medios en WordPress y me divertí un poco, pero llegué al punto en el que me golpeé la cabeza contra la pared.

Tengo un meta box personalizado en el que me gustaría almacenar algunas imágenes (bueno, es una entrada oculta y actualmente estoy almacenando sus identificaciones, pero también podría ser los objetos de imagen), y luego hago una llamada AJAX para mostrar algunas miniaturas. que posteriormente he hecho arrastrable para que los usuarios puedan reordenar (no necesariamente relevante solo algunos antecedentes).

Mi problema es que cuando abro el administrador de medios, no se seleccionan imágenes, por lo que si un usuario desea editar las imágenes en su galería, debe volver a seleccionarlas.

Lo que estoy tratando de averiguar es cómo abro el administrador de medios con las imágenes actuales pasadas para que sean preseleccionadas.

Entonces, en términos generales, mi código se parece a esto

jQuery(''#myButton'').click(function(e) { e.preventDefault(); frame = wp.media({ title : ''My Gallery Title'', multiple : true, library : { type : ''image''}, button : { text : ''Insert'' }, }); frame.on(''close'',function() { // get selections and save to hidden input plus other AJAX stuff etc. } frame.open(); });

Mi idea es que debe haber un parámetro para pasar al marco (probablemente un objeto JSON de las imágenes, o necesito crear un evento para

frame.on(''open'', function() { // Set selected images }

Pero he intentado en ambos sentidos y no estoy llegando a ningún lado.

Parecería posible, ya que cambiar la ''Imagen destacada'' te lleva a la biblioteca con la actual seleccionada. ¡No he podido entender el código central lo suficiente todavía y espero que alguien más lo haya hecho!


Después de estudiar el núcleo por un tiempo, la respuesta aquí es bastante simple.

Escuche el evento abierto, tome el estado, cree objetos adjuntos con su identificación y agréguelos a la selección.

frame.on(''open'',function() { var selection = frame.state().get(''selection''); ids = jQuery(''#my_field_id'').val().split('',''); ids.forEach(function(id) { attachment = wp.media.attachment(id); attachment.fetch(); selection.add( attachment ? [ attachment ] : [] ); }); });

Esto funciona cuando se seleccionan varias imágenes y también se asume que con el código anterior se almacenaron los valores en un solo campo de texto / oculto con separación de coma.


no es una respuesta real, pero algo que he notado

utilizando su código, frame.open( console.log(''open'') ) el frame.open( console.log(''open'') ) .
El otro frame.on(''open'', function() { console.log(''on->open'')}) no.

Al mirar la página de editar publicaciones. (Donde una imagen destacada ya está configurada). Si abre la ventana de img presentada, suceden algunas cosas interesantes.

  1. WP hace 3 llamadas ajax, la 1ra y 3ra contiene la img id presentada. el segundo es el mismo que con tu código.

  2. cuando se carga la ventana emergente, la imagen mostrada es visible / cargada antes que el resto de las imágenes. Cuando aparecen, la imagen presentada se coloca en el orden correcto.

  3. Cuando busco en firebug en la pestaña dom descubrí que el var wp.media.model.settings.post.featuredImageId tiene (espere) el valor de la imagen mostrada.

Espera que esto te ayude de alguna manera.