web-dev-qa-db-ja.com

「管理領域のjqueryスクリプトを登録解除しないでください」とはどういう意味ですか?

私たちはみんなcdnキャッシュなどを使うことの利点を知っています。しかし問題はそれがこのようなエラーを見せているということです

はいワードプレスでのデバッグはオンになっています。

このようなエラーが表示されます。

Notice:wp_deregister_scriptが誤って呼び出されました。管理領域でjqueryスクリプトを登録解除しないでください。フロントエンドテーマをターゲットにするには、wp_enqueue_scriptsフックを使用します。詳しくはWordPressでのデバッグをご覧ください。 (このメッセージはバージョン3.6で追加されました。)D:\ learnnepal\wp-includes\functions.phpの3622行目に

しかし、コードは問題ないと思います。

表示されないことに気付いた次のコード行を削除するのはなぜですか。

add_action( 'wp_enqueue_scripts', function(){
    wp_deregister_script( 'jquery' );
    wp_register_script( 'jquery', 'http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js', array(), null, false );
    wp_enqueue_script( 'jquery');
});

コードに問題はありますか?

明らかにデバッグをオフにすることは回避策ですが非常に悪い習慣ではないですか?

1
stlawrance

エラーに基づいて...

add_action( 'wp_enqueue_scripts', function(){
    if (is_admin()) return; // don't dequeue on the backend
    wp_deregister_script( 'jquery' );
    wp_register_script( 'jquery', 'http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js', array(), null, false );
    wp_enqueue_script( 'jquery');
});

正直なところ、あなたが広い地理的領域にわたって途方もないトラフィックを持っていない限り、私はCDNsが非常に過大評価されていると言うでしょう。私が管理しているサイトのハングアップを見てきましたが、ボトルネックはCDNです - 私はあなたを見ていますGoogle。だから、これは実装する価値があるソリューションではないかもしれません。

第二に、コアスクリプトのデキューは危険なゲームです。プラグインとテーマはそれらのスクリプトに依存します。予想されるものとは異なるバージョンをロードすると、スクリプトが失敗する可能性があります。

明らかにデバッグをオフにすることは回避策ですが非常に悪い習慣ではないですか?

生産または開発?運用サーバーではデバッグをオフにし、デバッグ中にのみオンにする必要があります。

2
s_ha_dum

エラーが指摘するように、あなたは本当にderegister the jquery script in the administration areaをしたくありません。通知を回避するためにあなたができること:

if ( ! is_admin() ) {
    add_action( 'wp_enqueue_scripts', function(){
        wp_deregister_script( 'jquery' );
        wp_register_script( 'jquery', 'http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js', array(), null, false );
        wp_enqueue_script( 'jquery');
    });
}

管理領域で登録抹消をしてはいけない理由は、adminセクションのWPコア機能の多くがJavaScriptに依存しているためです。WPチームは特に機能するようにその機能をコーディングしましたWordPressに同梱されているjQueryのバージョンを使用してください。機能に違いはありませんが、異なるjQueryバージョンに欠けているものや壊れているものがあると、管理領域が使用できなくなる可能性があります。

2
phatskat

あなたが正しいフックを使うならば、それは文句を言うべきではありません:

if ( is_admin() ) {
    $hook = 'admin_enqueue_scripts';
} elseif ( 'wp-login.php' === $GLOBALS['pagenow'] ) {
    $hook = 'login_enqueue_scripts';
} else {
    $hook = 'wp_enqueue_scripts';
}
add_action( $hook, function() {
    wp_deregister_script( 'jquery' );
    wp_register_script( 'jquery', 'http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js', array(), null, false );
    wp_enqueue_script( 'jquery');
} );
1
bonger