php - wp_enqueue_script - Cómo agregar JavaScript personalizado a WordPress Admin?
utilizar javascript en wordpress (4)
Quiero agregar un código jquery personalizado a la página Editar publicación, algo realmente simple como mostrar un div cuando alguien presiona Publicar.
La única restricción es que quiero lograr esto mediante el uso de un complemento, no pirateando los archivos de la plantilla de administrador.
He intentado hacer eco de algunas etiquetas de script utilizando algunas acciones, pero no parece ser el camino.
Hay un fragmento para su archivo functions.php:
function custom_admin_js() {
$url = get_bloginfo(''template_directory'') . ''/js/wp-admin.js'';
echo ''"<script type="text/javascript" src="''. $url . ''"></script>"'';
}
add_action(''admin_footer'', ''custom_admin_js'');
Funciona bien en Wordpress 3.2.1.
admin_enqueue_scripts
y wp_enqueue_script
son la forma preferida de agregar archivos javascript al tablero.
// I''m using an anonymous function for brevity.
add_action( ''admin_enqueue_scripts'', function() {
wp_enqueue_script( ''handle'', plugin_dir_url( __FILE__ ) . ''/script.js'' );
} );
Sin embargo, si desea generar el javascript utilizando su función de PHP, wp_add_inline_script
no parece funcionar. En su lugar, puede usar admin_print_scripts
para hacer eco directamente de la secuencia de comandos, incluidas las etiquetas de secuencia de comandos. Solo asegúrese de establecer la prioridad alta para que se cargue después de cualquier biblioteca requerida, como jQuery
.
add_action( ''admin_print_scripts'', function() {
// I''m using NOWDOC notation to allow line breaks and unescaped quotation marks.
echo <<<''EOT''
<script type="text/javascript">
jQuery(function($){
// Do stuff here.
});
</script>
EOT;
}, PHP_INT_MAX );
Use la acción admin_enqueue_scripts
y el método wp_enqueue_script
para agregar scripts personalizados a la interfaz de administración.
Esto supone que tiene myscript.js
en su carpeta de complementos. Cambiar en consecuencia. El manejador my_custom_script
debe ser exclusivo para su módulo y script.
function my_enqueue($hook) {
// Only add to the edit.php admin page.
// See WP docs.
if (''edit.php'' !== $hook) {
return;
}
wp_enqueue_script(''my_custom_script'', plugin_dir_url(__FILE__) . ''/myscript.js'');
}
add_action(''admin_enqueue_scripts'', ''my_enqueue'');
<?php
function add_jquery_data() {
global $parent_file;
if ( isset( $_GET[''action''] ) && $_GET[''action''] == ''edit'' && isset( $_GET[''post''] ) && $parent_file == ''edit.php'') {
// Do some stuff.
}
}
add_filter(''admin_head'', ''add_jquery_data'');
?>