web-dev-qa-db-fra.com

Utilisation de migrer pour les plugins incompatibles avec jquery 1.10.2

J'essaie d'utiliser un plugin jquery qui ne soit pas compatible avec jquery 1.10.2 dans Wordpress 3.6 et qui a été capable de le réparer en utilisant jquery migrate qui, apparemment, est également livré avec 3.6.

Je pensais que je pourrais peut-être l'inclure comme dépendance, comme ceci:

add_action('wp_enqueue_scripts', 'tf_load_custom_scripts');

function tf_load_custom_scripts() {

    wp_register_script('curtain', get_stylesheet_directory_uri().'/curtain.min.js', array('jquery', 'jquery-migrate'), 2.0 ); 
    wp_register_script('curtain-instance', get_stylesheet_directory_uri().'/curtain-instance.min.js', array('curtain','jquery','jquery-migrate'), true ); 

    if( is_front_page() ) {
        wp_enqueue_script('curtain');
        wp_enqueue_script('curtain-instance');
    }


    wp_enqueue_script('custom_script', get_stylesheet_directory_uri().'/script.min.js', array('jquery'), 1.0, true );

}

mais cela ne fonctionne toujours pas, alors j'aimerais de l'aide.

1
mantis

Vous avez une erreur de syntaxe dans votre appel wp_register_script():

wp_register_script('curtain-instance', get_stylesheet_directory_uri().'/curtain-instance.min.js', array('curtain','jquery','jquery-migrate'), true );

Il vous manque le paramètre version:

wp_register_script(
    // Handle
    'curtain-instance', 
    // Path
    get_stylesheet_directory_uri().'/curtain-instance.min.js', 
    // Dependencies
    array('curtain','jquery','jquery-migrate'), 
    // Version
    // In footer?
    true 
);

Essayez d'ajouter ce paramètre:

wp_register_script(
    // Handle
    'curtain-instance', 
    // Path
    get_stylesheet_directory_uri().'/curtain-instance.min.js', 
    // Dependencies
    array('curtain','jquery','jquery-migrate'), 
    // Version
    '1.0',
    // In footer?
    true 
);

Deux autres choses:

  1. Faites attention à stylesheet répertoire vs template répertoire. Sauf si vous travaillez avec un thèmeChild/, vous devez utiliser get_template_directory_uri() plutôt que get_stylesheet_directory_uri().
  2. Vous pouvez simplifier les choses en chaînant vos dépendances, puis en mettant en file d'attente les dernières dans la chaîne:

    add_action ('wp_enqueue_scripts', 'tf_load_custom_scripts');

    fonction tf_load_custom_scripts () {

    wp_register_script( 'curtain', 
        get_template_directory_uri().'/curtain.min.js', 
        array( 'jquery', 'jquery-migrate' ), 
        2.0 
    ); 
    wp_register_script(
        'curtain-instance', 
        get_template_directory_uri().'/curtain-instance.min.js', 
        array( 'curtain' ), 
        '1.0',
        true 
    ); 
    
    if ( is_front_page() ) {
        wp_enqueue_script('curtain-instance');
    }
    
    
    wp_enqueue_script(
        'custom_script', 
        get_template_directory_uri().'/script.min.js', 
        array( 'jquery' ), 
        1.0, 
        true 
    );
    

    }

Enfin, notez que lorsque WordPress enregistre jQuery, ildéfinit jquery-migrate en tant que dépendance :

$scripts->add( 'jquery', false, array( 'jquery-core', 'jquery-migrate' ), '1.10.2' );

Alors, essayez de supprimer la dépendance jquery-migrate:

add_action('wp_enqueue_scripts', 'tf_load_custom_scripts');

function tf_load_custom_scripts() {

    wp_register_script( 'curtain', 
        get_template_directory_uri().'/curtain.min.js', 
        array( 'jquery' ), 
        2.0 
    ); 
    wp_register_script(
        'curtain-instance', 
        get_template_directory_uri().'/curtain-instance.min.js', 
        array( 'curtain' ), 
        '1.0',
        true 
    ); 

    if ( is_front_page() ) {
        wp_enqueue_script('curtain-instance');
    }


    wp_enqueue_script(
        'custom_script', 
        get_template_directory_uri().'/script.min.js', 
        array( 'jquery' ), 
        1.0, 
        true 
    );

}
2
Chip Bennett