Eu me deparei com isso ao tentar integrar a gota do Dropbox na API do seletor a um plug-in que estou escrevendo.
A documentação da API instrui você a colocar a seguinte script
tag na parte superior do seu arquivo:
<script type="text/javascript" src="https://www.dropbox.com/static/api/1/dropins.js" id="dropboxjs" data-app-key="MY_APP_KEY"></script>
Tudo bem e bem, e na verdade funciona quando colo diretamente na página chamada na seção admin. Mas, eu gostaria de usar algumas variações de wp_register_script (), wp_enqueue_script () e wp_localize_script () para passar a identificação necessária e a chave de aplicativo de dados.
Eu tentei algumas variações diferentes disso:
add_action('admin_enqueue_scripts', 'add_dropbox_stuff');
function add_dropbox_js() {
wp_register_script('dropbox.js','https://www.dropbox.com/static/api/1/dropins.js');
wp_enqueue_script('dropbox.js');
wp_localize_script('dropbox.js','dropboxdata',array('id'=>"dropboxjs",'data-app-key'=>"MY_APP_KEY"));
}
E:
add_action('admin_enqueue_scripts', 'add_dropbox_stuff');
function add_dropbox_stuff() {
wp_register_script('dropbox.js','https://www.dropbox.com/static/api/1/dropins.js');
wp_enqueue_script('dropbox.js');
wp_localize_script('dropbox.js','dropboxdata',array(array('id'=>"dropboxjs"),array('data-app-key'=>"MY_APP_KEY")));
}
MY_APP_KEY é substituído pela chave apropriada do aplicativo no meu código. Apreciaria qualquer direção. Obrigado.
EDIT: Também tentei fazê-lo com algum jquery, mas sem sucesso. Tentei no carregamento do documento e no documento pronto. Recebo um retorno de {"error": "app_key inválido"}.
$('script[src="https://www.dropbox.com/static/api/1/dropins.js?ver=3.6"]').attr('id','dropboxjs').attr('data-multiselect','true').attr('data-app-key','MY_APP_KEY');
wp_localize_script
não cria atributos de script. Mas é possível passar a chave do aplicativo diretamente no dropbox.js? Apenas um palpite, mas você já tentou array('appKey'=>"MY_APP_KEY")
? Este é o código que agarra a chave do atributoif(!Dropbox.appKey){Dropbox.appKey=(e=document.getElementById("dropboxjs"))!=null?e.getAttribute("data-app-key"):void 0}
wp_localize_script
certeza você pode passar atributos para o script. Eu realmente não sei se isso vai funcionar ou não, no entanto, não é um assunto relacionado ao worpress.
wp_localize_script
fazer é imprimir um objeto codificado em json na saída html da página. Este objeto é reconhecido pelo script e, portanto, você pode usá-lo. O que você precisa é adicionar alguns atributos à tag de script e, portanto,wp_localize_script
não pode ajudá-lo.