Saya mengalami ini ketika mencoba untuk mengintegrasikan API pemilih dropbox Dropbox ke sebuah plugin yang saya tulis.
Dokumentasi API memerintahkan Anda untuk menempatkan script
tag berikut di bagian atas file Anda:
<script type="text/javascript" src="https://www.dropbox.com/static/api/1/dropins.js" id="dropboxjs" data-app-key="MY_APP_KEY"></script>
Semua baik dan bagus, dan itu benar-benar berfungsi ketika saya langsung menempelkannya ke halaman yang disebut di bagian admin. Tapi, saya ingin menggunakan beberapa variasi wp_register_script (), wp_enqueue_script () dan wp_localize_script () untuk meneruskan id dan data-app-key yang diperlukan.
Saya sudah mencoba beberapa variasi berbeda dari ini:
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"));
}
Dan:
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 diganti dengan kunci aplikasi yang sesuai dalam kode saya. Akan menghargai segala arah. Terima kasih.
EDIT: Juga mencoba melakukannya dengan beberapa jquery, tetapi tidak berhasil. Mencobanya saat memuat dokumen dan dokumen siap. Saya mendapatkan {"error": "app_key" tidak valid}} kembali.
$('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
tidak membuat atribut skrip. Tetapi apakah mungkin untuk meneruskan kunci aplikasi langsung ke dropbox.js? Hanya tebakan tetapi apakah Anda sudah mencoba array('appKey'=>"MY_APP_KEY")
? Ini adalah kode yang mengambil kunci dari atributif(!Dropbox.appKey){Dropbox.appKey=(e=document.getElementById("dropboxjs"))!=null?e.getAttribute("data-app-key"):void 0}
wp_localize_script
yakin Anda dapat meneruskan atribut ke skrip. Saya benar-benar tidak tahu apakah ini akan berhasil atau tidak, namun itu bukan masalah yang terkait dengan pertanda.
wp_localize_script
dilakukan adalah mencetak objek yang dikodekan json di output html halaman. Objek ini dikenali oleh skrip sehingga Anda dapat menggunakannya. Yang Anda butuhkan adalah menambahkan beberapa atribut ke tag skrip, sehinggawp_localize_script
tidak dapat membantu Anda.