Ich bin darauf gestoßen , als ich versucht habe, die Drop-In-Auswahl-API von Dropbox in ein Plugin zu integrieren, das ich gerade schreibe.
In der API-Dokumentation werden Sie aufgefordert, das folgende script
Tag am Anfang Ihrer Datei einzufügen:
<script type="text/javascript" src="https://www.dropbox.com/static/api/1/dropins.js" id="dropboxjs" data-app-key="MY_APP_KEY"></script>
Alles in Ordnung und gut, und es funktioniert tatsächlich, wenn ich es direkt in die Seite einfügen, die im Admin-Bereich aufgerufen wird. Ich möchte jedoch eine Variation von wp_register_script (), wp_enqueue_script () und wp_localize_script () verwenden, um die erforderliche ID und den Daten-App-Schlüssel zu übergeben.
Ich habe ein paar verschiedene Variationen davon ausprobiert:
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"));
}
Und:
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 wird in meinem Code durch den entsprechenden Anwendungsschlüssel ersetzt. Würde mich über jede Richtung freuen. Vielen Dank.
EDIT: Auch versucht, es mit etwas jquery zu tun, aber ohne Erfolg. Versuchte es auf Dokument laden und auf Dokument bereit. Ich erhalte die Meldung {"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
keine Skriptattribute. Aber ist es möglich, den App-Schlüssel direkt an dropbox.js zu übergeben? Nur eine Vermutung, aber haben Sie es versucht array('appKey'=>"MY_APP_KEY")
? Dies ist der Code, der den Schlüssel aus dem Attribute packtif(!Dropbox.appKey){Dropbox.appKey=(e=document.getElementById("dropboxjs"))!=null?e.getAttribute("data-app-key"):void 0}
wp_localize_script
Sicherheit können Sie Attribute an das Skript übergeben. Ich weiß wirklich nicht, ob das funktionieren wird oder nicht, es ist jedoch keine worpress-bezogene Angelegenheit.
wp_localize_script
tun, ist ein json-codiertes Objekt in der HTML-Ausgabe der Seite zu drucken. Dieses Objekt wird vom Skript erkannt und kann verwendet werden. Sie müssen dem Skript-Tag einige Attribute hinzufügen undwp_localize_script
können Ihnen daher nicht helfen.