it-swarm.com.de

Was bedeutet "Das jquery-Skript im Administrationsbereich nicht abmelden"?

Wir alle kennen den Vorteil von cdn caching etc .. Aus diesem Grund habe ich das Skript abgemeldet und jquery mit cdn link registriert. Aber das Problem ist, dass es Fehler wie diesen anzeigt

Ja Das Debuggen in WordPress ist aktiviert.

Es zeigt Fehler wie folgt.

Hinweis: wp_deregister_script wurde falsch aufgerufen. Das jquery-Skript im Administrationsbereich nicht abmelden. Verwenden Sie den Hook wp_enqueue_scripts, um das Frontend-Thema als Ziel festzulegen. Weitere Informationen finden Sie unter Debuggen in WordPress. (Diese Nachricht wurde in Version 3.6 hinzugefügt.) In D:\learnnepal\wp-includes\functions.php in Zeile 3622

Aber ich denke, Code ist in Ordnung.

WANN entferne ich die folgenden Codezeilen, die nicht angezeigt werden?

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

Gibt es ein Problem mit dem Code?

Das Deaktivieren des Debuggings ist eine Problemumgehung, aber eine sehr schlechte Vorgehensweise, nicht wahr?

1
stlawrance

Basierend auf dem Fehler ...

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

Ehrlich gesagt, würde ich sagen, dass CDNs stark überbewertet sind, es sei denn, Sie haben enormen Verkehr über ein breites geografisches Gebiet. Ich habe das Auflegen auf Websites beobachtet, die ich verwaltet habe, und sehr oft ist der Engpass das CDN - ich sehe Sie bei Google an. Dies ist also möglicherweise keine Lösung, die es wert ist, implementiert zu werden.

Zweitens ist das Löschen von Core-Skripten ein gefährliches Spiel. Plugins und Themes hängen von diesen Skripten ab. Wenn Sie eine andere als die erwartete Version laden, können Skripts fehlschlagen.

Das Deaktivieren des Debuggings ist eine Problemumgehung, aber eine sehr schlechte Vorgehensweise, nicht wahr?

Produktion oder Entwicklung? Das Debuggen sollte auf einem Produktionsserver deaktiviert und nur während des Debuggens aktiviert sein.

2
s_ha_dum

Wie der Fehler feststellt, möchten Sie wirklich nicht deregister the jquery script in the administration area. Was Sie tun können, um die Meldung zu vermeiden:

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

Der Grund, warum Sie die Registrierung im Admin-Bereich nicht aufheben sollten, ist, dass ein Großteil der WP Kernfunktionalität für den Admin-Bereich von JavaScript abhängt, und das WP Team hat dies codiert Funktionalität speziell für die mit WordPress gelieferte Version von jQuery. Es sollte zwar keinen Unterschied in der Funktionalität geben, aber wenn in einer anderen jQuery-Version etwas fehlt oder kaputt ist, kann dies dazu führen, dass Ihr Admin-Bereich unbrauchbar wird.

2
phatskat

Wenn Sie den richtigen Haken verwenden, sollte er sich nicht beschweren:

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