Me encontré con esto al intentar integrar la caída de Dropbox en la API del selector en un complemento que estoy escribiendo.
La documentación de la API le indica que coloque la siguiente script
etiqueta en la parte superior de su archivo:
<script type="text/javascript" src="https://www.dropbox.com/static/api/1/dropins.js" id="dropboxjs" data-app-key="MY_APP_KEY"></script>
Todo bien, y en realidad funciona cuando lo pego directamente en la página que se llama en la sección de administración. Pero, me gustaría usar alguna variación de wp_register_script (), wp_enqueue_script () y wp_localize_script () para pasar la identificación necesaria y la clave de aplicación de datos.
He probado un par de variaciones diferentes de esto:
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"));
}
Y:
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 se reemplaza con la clave de aplicación apropiada en mi código. Agradecería cualquier dirección. Gracias.
EDITAR: También intenté hacerlo con un poco de jquery, pero fue en vano. Probé con la carga del documento y con el documento listo Me devuelve un {"error": "clave_aplicación no válida"}.
$('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
y no crea atributos de script. Pero, ¿es posible pasar la clave de la aplicación directamente a dropbox.js? Solo una suposición, pero ¿lo has intentado array('appKey'=>"MY_APP_KEY")
? Este es el código que toma la clave del atributoif(!Dropbox.appKey){Dropbox.appKey=(e=document.getElementById("dropboxjs"))!=null?e.getAttribute("data-app-key"):void 0}
wp_localize_script
seguridad de que puede pasar atributos al script. Realmente no sé si esto funcionará o no, sin embargo, no es un asunto relacionado con Worpress.
wp_localize_script
que debe hacer es imprimir un objeto codificado con json en la salida html de la página. El script reconoce este objeto, por lo que puede usarlo. Lo que necesita es agregar algunos atributos a la etiqueta del script, porwp_localize_script
lo que no puede ayudarlo.