0

プラグインに日付ピッカーを追加したいWordPressサイト(3.5.1)があります。デフォルトではこれは機能しなかったので、検索して、とを使用してライブラリをロードする必要があることがわかりましwp_register_script()wp_enqueue_script()。スクリプトを追加した後、私は日付ピッカーを持っていました。完全。

ウィジェットのレイアウトを変更したかったのですが、壊れていることがわかりました。ウィジェットをドラッグすることはできますが、ウィジェットをドロップすると「フリーズ」します。追加したjQueryライブラリをオフにしようとしました。ウィジェットモジュールは再び正しく機能していましたが、私の日付ピッカーはもう機能しません。

だから、私はfunctions.phpにこのコードを持っています:

add_action('init', 'change_jquery');

function change_jquery() {

    wp_deregister_script('jquery');
    wp_deregister_script('jquery-ui-core');

    wp_register_script('jquery',        '//ajax.googleapis.com/ajax/libs/jquery/1.9.0/jquery.min.js', false, '1.9.0');
    wp_register_script('jquery-ui-core',    '//ajax.googleapis.com/ajax/libs/jqueryui/1.10.0/jquery-ui.min.js', false, '1.10.0');
    wp_register_style('jquery-ui-css',  '//ajax.googleapis.com/ajax/libs/jqueryui/1.8.1/themes/ui-lightness/jquery-ui.css');

    wp_enqueue_script('jquery');
    wp_enqueue_script('jquery-ui-core');
    wp_enqueue_style('jquery-ui-css');
}

誰かが私の問題を引き起こしているものを知っていますか?多分私は二重ライブラリを宣言しましたか?私はこれにまったく慣れておらず、問題をどこで検索すればよいかわかりません。

4

3 に答える 3

0

私が知る限り、これはおそらくjavascriptエラーです。Wordpressはjqueryの$変数を処理するのにひどいです。できることは2つあります。

1)すべての「$」を「jQuery」に置き換えたファイルを追加してみてください。「Q」は大文字で記述する必要があり、「j」は大文字ではないことに注意してください。これは私のために働いた。例えば:

//Original javascript in wordpress.
function some_function(){
    $('#some_id').click('some_function');
}

//Adapted javascript in wordpress.
function function(){
    jQuery('#some_id').click('some_function');
}

2)jqueryで競合のないラッパーを作成してみることができます。これはまだテストしていませんが、機能するはずです。あなたはここでより多くの情報を見つけることができます。

于 2013-03-14T21:10:31.340 に答える
0

wp_enqueue_scriptsアクションにフックを使用する必要があります

add_action('wp_enqueue_scripts', 'change_jquery');

これは問題を解決しない可能性がありますが、スクリプトをエンキューするために使用する正しいフックです。

于 2013-03-14T20:53:02.730 に答える
0

datepicker がプラグインのバックエンドではなくフロントエンドで使用することを意図している場合は、is_admin()条件付きタグを使用してフロントエンド (管理パネルではなく) にのみロードします。

function change_jquery() {
    if (!is_admin()) {
        wp_deregister_script('jquery');
        wp_deregister_script('jquery-ui-core');

        wp_register_script('jquery',        '//ajax.googleapis.com/ajax/libs/jquery/1.9.0/jquery.min.js', false, '1.9.0');
        wp_register_script('jquery-ui-core',    '//ajax.googleapis.com/ajax/libs/jqueryui/1.10.0/jquery-ui.min.js', false, '1.10.0');
        wp_register_style('jquery-ui-css',  '//ajax.googleapis.com/ajax/libs/jqueryui/1.8.1/themes/ui-lightness/jquery-ui.css');

        wp_enqueue_script('jquery');
        wp_enqueue_script('jquery-ui-core');
        wp_enqueue_style('jquery-ui-css');
    }
}
add_action('wp_enqueue_scripts', 'change_jquery');
于 2013-03-14T20:59:46.757 に答える