¿Cómo cargar scripts en páginas de agregar/editar posts personalizados?

14 jul 2011, 17:28:15
Vistas: 31.5K
Votos: 27

Estoy tratando de cargar un script JS solamente cuando alguien está agregando o editando un tipo de post personalizado que creé llamado "recipes". Actualmente el script funciona bien cuando hago esto:

if (is_admin()){
    wp_enqueue_script( 'my-script' );
}

Pero esto lo carga en todas las páginas de administración, supongo que necesito engancharlo a una función pero no tengo idea de cuál sería.

¡Gracias de antemano!

1
Comentarios

Para uso futuro, una pregunta similar fue respondida con lo que considero una forma más sencilla: http://wordpress.stackexchange.com/q/34894/93169

Frits Frits
29 abr 2016 09:37:01
Todas las respuestas a la pregunta 3
3
57

Puedes hacerlo así (coloca esto en tu archivo functions.php):

function add_admin_scripts( $hook ) {

    global $post;

    if ( $hook == 'post-new.php' || $hook == 'post.php' ) {
        if ( 'recipes' === $post->post_type ) {     
            wp_enqueue_script(  'myscript', get_stylesheet_directory_uri().'/js/myscript.js' );
        }
    }
}
add_action( 'admin_enqueue_scripts', 'add_admin_scripts', 10, 1 );
14 jul 2011 17:38:47
Comentarios

¿Puedo también encolar estilos usando esta función?

Sisir Sisir
14 nov 2011 13:16:55

@Sisir Usa el hook "admin_print_styles-{$page}". $page puede contener el código completo de add_(sub)menu_page() y usarse para apuntar a la página cuando uses @see wp_enqueue_style().

kaiser kaiser
14 nov 2011 20:04:08

Una forma más actualizada de hacer esto: http://wordpress.stackexchange.com/a/34897/93169 (también resulta un poco más fácil gracias a los cambios de funcionalidad en WordPress...)

Frits Frits
29 abr 2016 09:38:19
4
-3

Hay un gancho para eso, y es extremadamente simple de usar. Consulta este tutorial para ver un ejemplo de implementación.

Editar

Justin trasladó sus tutoriales de DevPress a su sitio personal. Aquí está el enlace actualizado para el tutorial.

14 jul 2011 17:39:49
Comentarios

La página mencionada ya no está disponible. Aquí hay un espejo/archivo en la máquina Wayback.

Robert K Robert K
8 mar 2012 23:42:31

Gracias por eso. He actualizado mi respuesta con un enlace actual.

Chip Bennett Chip Bennett
9 mar 2012 00:04:26

¿Por qué no publicas la solución aquí y enlazas el tutorial como fuente?...

Christine Cooper Christine Cooper
8 nov 2014 18:33:14

Especialmente considerando que todos los enlaces ahora no son válidos.

Carl Brubaker Carl Brubaker
8 jul 2021 22:39:27
0
-4

Rootstheme (que está basado en Twitter Bootstrap) tiene una forma realmente elegante de cargar scripts dependiendo del tipo de página/publicación, como se puede ver en la función roots_scripts que puedes ver aquí en github.

Básicamente, registra todos tus scripts y estilos, luego usa declaraciones condicionales que envuelven tus sentencias wp_enqueue_script o wp_enqueue_style.

31 mar 2013 22:22:27