¿Cómo poner en secuencia los scripts en las páginas de agregar / editar publicaciones personalizadas?

23

Estoy tratando de poner en cola un script JS solo cuando alguien agrega o edita un tipo de publicación personalizado que creé llamado "recetas". Actualmente el script funciona bien cuando hago esto:

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

Pero esto lo carga en cada página de administración, supongo que necesito conectarlo a una función, pero no tengo idea de lo que sería.

¡Gracias por adelantado!

Javier Villanueva
fuente
Para uso futuro, se respondió una pregunta similar con lo que creo que fue una manera más fácil: wordpress.stackexchange.com/q/34894/93169
Frits

Respuestas:

43

Puede hacerlo así (poner en su 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 );
mike23
fuente
¿Puedo también poner en cola el estilo usando esta función?
Sisir
1
@Sisir Usa el "admin_print_styles-{$page}"gancho. $pagepuede contener la completa add_(sub)menu_page()código y usarse para luego dirigirse a la página cuando se utiliza @see wp_enqueue_style().
kaiser
Una forma más actualizada de hacerlo: wordpress.stackexchange.com/a/34897/93169 (también resulta ser un poco más fácil gracias a los cambios de funcionalidad en wordpress ...)
Frits
-2

Hay un gancho para eso, y es muy fácil de usar. Vea este tutorial para una implementación de ejemplo .

Editar

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

Chip Bennett
fuente
La página listada se ha ido. Aquí hay un espejo / archivo en la máquina Wayback .
Robert K
Gracias por eso. He actualizado mi respuesta con un enlace actual.
Chip Bennett
3
¿Por qué no publicar la solución aquí y vincular el tutorial como la fuente ...
Christine Cooper
-3

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

Básicamente, registre todos sus scripts y estilos, luego tenga declaraciones condicionales que envuelvan sus declaraciones wp_enqueue_script o wp_enqueue_style .

Diseño FLOQ
fuente