web-dev-qa-db-ja.com

Jquery 1.10.2と互換性のないプラグインにjquery migrateを使用する

私はWordpress 3.6のjquery 1.10.2と互換性のないjqueryプラグインを使用しようとしていて、どうやら3.6も同梱されているjquery migrateを使用して修正できました。

私はおそらくそれを依存関係として含めることができると思いました。

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 );

}

それでもまだうまくいかないので、助けが欲しいのですが。

1
mantis

wp_register_script()呼び出しに構文エラーがあります。

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

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 
);

そのパラメータを追加してみてください。

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 
);

他に2つあります。

  1. スタイルシートディレクトリとテンプレートディレクトリに注意してください。 子テーマを使用しているのでない限り、get_template_directory_uri()ではなくget_stylesheet_directory_uri()を使用する必要があります。
  2. 依存関係を連鎖させて、チェーンの最後のものだけをエンキューすることで物事を単純化できます。

    add_action( 'wp_enqueue_scripts'、 'tf_load_custom_scripts');

    関数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 
    );
    

    }

そして最後に、WordPressがjQueryを登録するとき、 itjquery-migrateを依存関係として定義します

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

そのため、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