Comment mettre en file d'attente des scripts sur des pages personnalisées d'ajout / modification de messages?

23

J'essaie de mettre en file d'attente un script JS uniquement lorsque quelqu'un ajoute ou modifie un type de message personnalisé que j'ai créé appelé "recettes". Actuellement, le script fonctionne bien quand je fais cela:

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

Mais cela le charge dans chaque page d'administration, je suppose que je dois le connecter à une fonction mais je n'ai aucune idée de ce que ce serait.

Merci d'avance!

Javier Villanueva
la source
Pour une utilisation future, une question similaire a été répondue avec ce que je pense être un moyen plus simple: wordpress.stackexchange.com/q/34894/93169
Frits

Réponses:

43

Vous pouvez le faire comme ceci (mettre dans votre 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
la source
Puis-je également mettre en file d'attente le style à l'aide de cette fonction?
Sisir
1
@Sisir Utilisez le "admin_print_styles-{$page}"crochet. $pagepeut contenir le add_(sub)menu_page()code complet et être utilisé pour cibler la page lors de l'utilisation @see wp_enqueue_style().
kaiser
Une façon plus à jour de le faire: wordpress.stackexchange.com/a/34897/93169 (il se trouve également être un peu plus facile grâce aux changements de fonctionnalités dans wordpress ...)
Frits
-2

Il y a un crochet pour cela, et c'est très simple à utiliser. Voir ce tutoriel pour un exemple d'implémentation .

modifier

Justin a déplacé ses tutoriels de DevPress vers son site personnel. Voici le lien mis à jour pour le tutoriel .

Chip Bennett
la source
La page répertoriée a disparu. Voici un miroir / archive sur la machine Wayback .
Robert K
Merci pour ça. J'ai mis à jour ma réponse avec un lien actuel.
Chip Bennett
3
Pourquoi ne pas poster la solution ici et lier le tutoriel comme source ...
Christine Cooper
-3

Rootstheme (qui est basé sur Twitter Bootstrap) a une façon très élégante de charger des scripts en fonction du type de page / publication comme indiqué dans le fonction roots_scripts qui peut être vue ici sur github .

Enregistrez essentiellement tous vos scripts et styles, puis disposez d'instructions conditionnelles qui encapsulent vos instructions wp_enqueue_script ou wp_enqueue_style .

FLOQ Design
la source