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

22

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

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

Mais cela le charge dans chaque page d’administration, je suppose que je dois l’attacher à une fonction, mais je ne sais pas du tout ce que ce serait.

Merci d'avance!

    
posée Javier Villanueva 14.07.2011 - 16:28

3 réponses

39

Vous pouvez le faire comme ceci (mettez 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 );
    
réponse donnée mike23 14.07.2011 - 16:38
-2

Il existe un crochet pour cela, et il est extrêmement simple à utiliser. Voir ce tutoriel pour un exemple de mise en oeuvre .

Modifier

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

    
réponse donnée Chip Bennett 14.07.2011 - 16:39
-3

Rootstheme (basé sur Twitter Bootstrap) offre un moyen très élégant de charger des scripts en fonction du type de page / publication affiché dans la fonction roots_scripts que vous pouvez voir ici sur github

Enregistrez tous vos scripts et styles, puis utilisez des instructions conditionnelles qui encapsulent vos instructions wp_enqueue_script ou wp_enqueue_style .

    
réponse donnée FLOQ Design 31.03.2013 - 21:22

Lire d'autres questions sur les étiquettes