0

基本的にこれはまさに私がやっていることです:

functions.php でこれを行うと、機能しません

//functions.php
add_action('init', 'override_jquery');

function override_jquery() {
    if( !is_admin()){
        wp_deregister_script('jquery');
        wp_enqueue_script( 'nashgraphics_jquery_library', get_template_directory_uri() . '/bootstrap/js/jquery-1.9.0.min.js');
    }
}

これをプラグインとして実行すると動作します

//my_plugin.php
add_action('wp_enqueue_scripts', 'override_jquery');

function override_jquery() {
    $plugin_location=WP_PLUGIN_URL.'/'.str_replace(basename( __FILE__),"",plugin_basename(__FILE__));
    if( !is_admin()){
        wp_deregister_script('jquery');
        wp_enqueue_script( 'nashgraphics_jquery_library', $plugin_location . 'fancybox/library/jquery-1.9.0.min.js');
    }
}

私の問題は、異なるバージョンのjqueryを必要とする独自のテーマを開発しようとしているため、functions.phpを介してJQueryライブラリをオーバーライドする必要があることです

プラグインを無効にすると深刻な問題になるため、jquery ライブラリをプラグインとしてオーバーライドしないでください。

プラグインとして実行すると機能するのに、functions.php で実行しているときに jquery ライブラリが含まれていない理由を説明してもらえますか?

4

1 に答える 1

0

jqueryあなたは再びスクリプトに名前を付けませんでした。これを試して:

function override_jquery() {
    if( !is_admin()){
        wp_deregister_script('jquery');
        wp_register_script( 'jquery', get_template_directory_uri() . '/bootstrap/js/jquery-1.9.0.min.js');
        wp_enqueue_script('jquery');
    }
}

WordPress で独自の jQuery を使用することはお勧めできません。これあれを読んでください。

于 2013-04-30T05:06:06.323 に答える