web-dev-qa-db-fra.com

Que signifie "Ne pas désenregistrer le script jQuery dans la zone d'administration"?

Nous connaissons tous l’avantage d’utiliser la mise en cache cdn, etc. Pour cela, j’ai désenregistré le script et enregistré jquery avec le lien cdn. Mais le problème est qu'il montre une erreur comme celle-ci

Oui Le débogage dans WordPress est activé.

Il montre une erreur comme celle-ci.

Remarque: wp_deregister_script a été appelé de manière incorrecte. Ne désenregistrez pas le script jQuery dans la zone d'administration. Pour cibler le thème frontal, utilisez le hook wp_enqueue_scripts. S'il vous plaît voir le débogage dans WordPress pour plus d'informations. (Ce message a été ajouté à la version 3.6.) Dans D:\learnnepal\wp-includes\functions.php à la ligne 3622

Mais je pense que le code va bien.

Quand est-ce que je supprime les lignes de code suivantes que l'avis ne montre pas?

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

Y at-il un problème avec le code?

Désactiver clairement le débogage est une solution de contournement, mais une très mauvaise pratique n'est-ce pas?

1
stlawrance

Basé sur l'erreur ...

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

Honnêtement, à moins que le trafic ne soit considérable sur une vaste zone géographique, je dirais que les CDN sont nettement surestimés. J'ai regardé le blocage sur les sites que j'ai gérés et très souvent le goulot d'étranglement est le CDN-- je vous regarde Google. Donc, cela peut ne pas être une solution à mettre en œuvre.

Deuxièmement, la suppression de la file d'attente des scripts Core est un jeu dangereux. Les plugins et les thèmes dépendent de ces scripts. Si vous chargez une version différente de celle attendue, les scripts peuvent échouer.

Désactiver clairement le débogage est une solution de contournement, mais une très mauvaise pratique n'est-ce pas?

Production ou développement? Le débogage doit être désactivé sur un serveur de production et activé uniquement pendant le débogage.

2
s_ha_dum

Comme le note l'erreur, vous ne voulez vraiment pas deregister the jquery script in the administration area. Que pouvez-vous faire pour éviter la notification:

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

La raison pour laquelle vous ne devriez pas annuler l’enregistrement dans la zone d’administration est qu’une grande partie de la fonctionnalité principale de WP pour la section d’administration repose sur JavaScript et que l’équipe WP a codé pour fonctionnalité permettant de travailler spécifiquement avec la version de jQuery fournie avec WordPress. Il ne devrait y avoir aucune différence de fonctionnalité, mais si quelque chose manquait ou était cassé dans une version différente de jQuery, cela pourrait rendre votre zone d'administration inutilisable.

2
phatskat

Si vous utilisez le bon crochet, vous ne devriez pas vous plaindre:

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