2010-07-24 27 views
21

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.Cómo agregar JavaScript personalizado a WordPress Admin?

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.

Respuesta

40

Utilice 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 identificador my_custom_script debe ser exclusivo para su módulo y secuencia de comandos.

function my_enqueue($hook) { 
    if ('edit.php' !== $hook) { 
     return; 
    } 
    wp_enqueue_script('my_custom_script', plugin_dir_url(__FILE__) . '/myscript.js'); 
} 

add_action('admin_enqueue_scripts', 'my_enqueue'); 
+3

Esta es la respuesta correcta para la versión actual de WordPress (el ejemplo se extrae directamente del Codex de WordPress). – thirdender

+0

¿En qué archivo debo colocar este código? ¿En qué parte del archivo debe colocarse este código? – commadelimited

+0

en su [archivo de complemento] (https://codex.wordpress.org/Writing_a_Plugin). – Tim

17
<?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'); 

?> 
+0

Muchas gracias, esto es exactamente lo que he estado buscando. He usado admin_footer de todos modos. Sin embargo, ¿hay alguna manera de cargar el contenido _only_ en una nueva publicación o publicación? – Nacho

+4

Bueno, si lo deseas también para la nueva página de publicaciones, puedes probar esto:

35

No es 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.

+0

me quedé esto en mi tema para que pudiera cargar un código jQuery para ocultar algunas partes de la barra de administración que no quería que mi cliente de jugar con, para atornillar el sitio web. Mira, estoy usando el plugin PODS para contenido y un tema personalizado. – Volomike

+0

@KuldeepDaftary Probablemente podría activar su JS personalizado a través de una función, que se activará después de la carga de la página y jQuery? –

+2

Esta es la forma incorrecta de agregar una secuencia de comandos. Debería poner en cola el script, como se muestra en [Respuesta de Tim] (http://stackoverflow.com/a/21914399/1924128). –

Cuestiones relacionadas