Yazdığım bir eklentiye Dropbox'ın seçici API'sındaki düşüşü entegre etmeye çalışırken buna rastladım .
API belgeleri, aşağıdaki scriptetiketi dosyanızın üstüne yerleştirmenizi ister:
<script type="text/javascript" src="https://www.dropbox.com/static/api/1/dropins.js" id="dropboxjs" data-app-key="MY_APP_KEY"></script>
Hepsi iyi ve iyi ve aslında doğrudan yönetici bölümünde çağrılan sayfaya yapıştırdığımda çalışır. Ancak, gerekli kimliği ve veri-app-anahtarını geçmek için wp_register_script (), wp_enqueue_script () ve wp_localize_script () 'in bazı varyasyonlarını kullanmak istiyorum.
Bunun birkaç farklı varyasyonunu denedim:
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"));
}
Ve:
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, kodumdaki uygun uygulama anahtarıyla değiştirildi. Herhangi bir yönü takdir ediyorum. Teşekkürler.
EDIT: Ayrıca bazı jquery ile yapmaya çalıştı, ama boşuna. Belge yükünde ve belge hazırda denedi. {"Hata": "Geçersiz app_key"} dönüşü alıyorum.
$('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_scriptkomut dosyası nitelikleri oluşturmayan doğru . Ancak uygulama anahtarını doğrudan dropbox.js'ye geçirmek mümkün müdür? Sadece bir tahmin ama denedin array('appKey'=>"MY_APP_KEY")mi? Bu özelliğinden anahtarını yakalar kodudurif(!Dropbox.appKey){Dropbox.appKey=(e=document.getElementById("dropboxjs"))!=null?e.getAttribute("data-app-key"):void 0}
wp_localize_script, komut dosyasına nitelikler iletebileceğinizden emin. Bunun işe yarayıp yaramayacağını gerçekten bilmiyorum, ancak worpress ile ilgili bir konu değil.
wp_localize_scriptyapmalı, sayfanın html çıktısında json kodlu bir nesne yazdırmaktır. Bu nesne komut dosyası tarafından tanınır ve böylece onu kullanabilirsiniz. İhtiyacınız olan şey komut dosyası etiketine bazı özellikler eklemektir ve bu yüzdenwp_localize_scriptsize yardımcı olamaz.