Sou o desenvolvedor do plug-in Advanced Custom Fields e espero que você possa me ajudar com um problema que estou enfrentando.
Eu tenho um botão onde você pode editar uma imagem. Este botão iniciará um modal de mídia WP 3.5 através da função wp_media ().
O problema é que eu quero pré-selecionar uma imagem para que seus detalhes sejam carregados no painel da barra lateral.
Atualmente, estou conectando-me ao retorno de chamada 'aberto' e executando algum código que preenche essa seleção, no entanto, é desajeitado e eficiente. Isto é o que parece:
// _media is an object I am using
_media.frame = wp.media({
title : 'title',
multiple : false,
button : { text : 'button' }
});
// open
_media.frame.on('open',function() {
// add class
_media.frame.$el.closest('.media-modal').addClass('acf-media-modal acf-expanded');
// set selection
var selection = _media.frame.state().get('selection'),
attachment = wp.media.attachment( id );
attachment.fetch();
selection.add( attachment );
});
// Finally, open the modal
_media.frame.open();
Isso está funcionando bem, até que o usuário abra outra janela modal, selecione a guia de upload e use o botão de edição que eu criei. Agora, o código falha completamente porque meu código depende do modal estar no modo 'procurar'.
Eu encontrei um código que trocará o quadro para o modo de navegação, fica assim:
_media.frame.content.mode('browse');
Isso funciona algumas vezes, mas o código a seguir falha. Como ele precisa de algum tempo para renderizar antes que o anexo possa ser adicionado à seleção ....
Certamente existe uma maneira melhor.
Obrigado pela ajuda. Elliot
Respostas:
Aqui está o script:
Estou usando a função
loadImages
no script a seguir para carregar as imagens anexadas existentes via AJAX e depois passar a função com os IDs das imagens e ele abre um modal pré-preenchido.E aqui está a função php que lida com a solicitação AJAX:
Acabei de copiar o trecho do meu framework WordPress, espero que faça sentido.
fonte