ฉันพบปัญหานี้เมื่อพยายามรวม Dropbox ของChooser 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 ถูกแทนที่ด้วยรหัสแอปพลิเคชันที่เหมาะสมในรหัสของฉัน จะขอบคุณทิศทางใด ขอบคุณ
แก้ไข: ยังพยายามที่จะทำกับ jQuery บางส่วน แต่จะไม่มีประโยชน์ พยายามในการโหลดเอกสารและในเอกสารพร้อม ฉันได้รับ {"ข้อผิดพลาด": "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
ไม่สามารถช่วยคุณได้