Я зіткнувся з цим при спробі інтегрувати краплі Dropbox у API вибору до плагіна, про який я пишу.
Документація API дає вам змогу розмістити такий script
тег у верхній частині файлу:
<script type="text/javascript" src="https://www.dropbox.com/static/api/1/dropins.js" id="dropboxjs" data-app-key="MY_APP_KEY"></script>
Все добре і добре, і це насправді працює, коли я безпосередньо вставляю його на сторінку, яку називають у розділі адміністратора. Але я хотів би використати певну варіацію wp_register_script (), wp_enqueue_script () та wp_localize_script (), щоб передати необхідний ідентифікатор та ключ-дані-додаток.
Я спробував кілька різних варіацій цього:
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"));
}
І:
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 замінюється відповідним ключем програми в моєму коді. Був би вдячний у будь-якому напрямку. Спасибі.
EDIT: Також намагався зробити це з деякими jquery, але безрезультатно. Спробували його під час завантаження документа та документа. Я отримую повернення {"error": "Invalid app_key"}.
$('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
не створює атрибутів сценарію. Але чи можна передати ключ програми безпосередньо в dropbox.js? Лише здогадка, але ви пробували array('appKey'=>"MY_APP_KEY")
? Це код, який хапає ключ від атрибутаif(!Dropbox.appKey){Dropbox.appKey=(e=document.getElementById("dropboxjs"))!=null?e.getAttribute("data-app-key"):void 0}
wp_localize_script
впевненістю, що ви можете передати атрибути сценарію. Я дійсно не знаю, чи це спрацює чи ні, однак це не питання, пов'язане з попередженням.
wp_localize_script
зробити, це надрукувати об'єкт, кодований json, у HTML-виводі сторінки. Цей об'єкт розпізнається сценарієм, тому ви можете ним користуватися. Вам потрібно додати деякі атрибути до тегу сценарію, і цеwp_localize_script
не може вам допомогти.