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()のバリエーションを使用して、必要なidとdata-app-keyを渡したいと思います。
私はこれのいくつかの異なるバリエーションを試しました:
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
やっていることはページのHTML出力にJSONエンコードオブジェクトを印刷します。このオブジェクトはスクリプトによって認識されるため、使用できます。必要なのは、スクリプトタグにいくつかの属性を追加wp_localize_script
することです。