Mi sono imbattuto in questo quando ho provato a integrare il drop di Dropbox nell'API di selezione in un plug-in che sto scrivendo.
La documentazione dell'API indica di posizionare il seguente script
tag nella parte superiore del file:
<script type="text/javascript" src="https://www.dropbox.com/static/api/1/dropins.js" id="dropboxjs" data-app-key="MY_APP_KEY"></script>
Tutto bene e bene, e in realtà funziona quando lo incollo direttamente nella pagina che viene chiamata nella sezione admin. Ma vorrei usare alcune varianti di wp_register_script (), wp_enqueue_script () e wp_localize_script () per passare l'id e la chiave-app-dati necessari.
Ho provato un paio di varianti diverse di questo:
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 viene sostituito con la chiave dell'applicazione appropriata nel mio codice. Gradirei qualsiasi direzione. Grazie.
EDIT: Ho anche provato a farlo con un po 'di jquery, ma senza risultati. Provato sul caricamento del documento e sul documento pronto. Ottengo un {"errore": "App_key non valido"} ritorno.
$('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
non crea attributi di script. Ma è possibile passare la chiave dell'app direttamente in dropbox.js? Solo una supposizione ma hai provato array('appKey'=>"MY_APP_KEY")
? Questo è il codice che prende la chiave dall'attributoif(!Dropbox.appKey){Dropbox.appKey=(e=document.getElementById("dropboxjs"))!=null?e.getAttribute("data-app-key"):void 0}
wp_localize_script
certezza che puoi passare gli attributi allo script. Non so davvero se funzionerà o meno, tuttavia non si tratta di una questione relativa al worpress.
wp_localize_script
fa è stampare un oggetto con codifica json nell'output html della pagina. Questo oggetto è riconosciuto dallo script e quindi puoi usarlo. Ciò di cui hai bisogno è aggiungere alcuni attributi al tag script e quindiwp_localize_script
non puoi aiutarti.