j'ai besoin d'exclure certains scripts de l'exécution sur une certaine page. J'ai essayé ce code mais cela ne fonctionne pas - lorsque j'inspecte la page, les scripts sont toujours chargés dans le pied de page de ma page.
voici mon code dans functions.php
add_action( 'wp_enqueue_scripts', 'my_deregister_javascript', 100 );
function my_deregister_javascript() {
if ( !is_page('my-page') ) {
wp_deregister_script( 'isotope' );
wp_deregister_script( 'anystretch' );
wp_deregister_script( 'imgliquid' );
wp_deregister_script( 'retina' );
wp_deregister_script( 'menutron' );
wp_deregister_script( 'imagesloaded' );
wp_deregister_script( 'myfunctions' );
}
}
qu'est-ce que je rate? Merci!
Vous avez une erreur de base dans votre code. Le code suivant
if ( !is_page('my-page') ) {
signifie que si vous êtes not sur cette page, deregister les scripts. Regardez les opérateurs php
! -> Not !$x True if $x is not true
Aussi, pourquoi ne pas exclure cette page spécifique lors de la mise en file d'attente initiale de ces scripts, par exemple
add_action( 'wp_enqueue_scripts', 'my_register_javascript', 100 );
function my_register_javascript() {
if ( !is_page('my-page') ) {
// ENQUEUE/REGISTER SCRIPTS
}
}
C'est beaucoup plus propre et plus efficace. Je ne vois pas l'intérêt d'enregistrer un script et de le désenregistrer à nouveau. Enregistrez plutôt les scripts conditionnellement depuis le début
Finalement, SEULEMENT ma page de garde pour ne pas charger jQuery, je pensais que je la partagerais pour éventuellement sauver un autre bidouillage de 8 heures de hit and miss.
// remove jquery from ONLY the front page
add_action( 'wp_enqueue_scripts', 'my_deregister_javascript' );
function my_deregister_javascript() {
if ( is_home('front-page') ) {
wp_deregister_script( 'jquery' );
}
}
REMARQUE: is_page de la question initiale ne fonctionne pas si vous souhaitez utiliser la page de couverture ou l'accueil dans l'argument doit utiliser is_home (cela m'a coûté une heure)
J'essaierais probablement de ne mettre en file d'attente ces scripts que sur des pages spécifiques, plutôt que de les mettre en file d'attente puis de les mettre en file d'attente:
function wpse158453_enqueue_scripts() {
if(!is_page('my-page')) {
wp_enqueue_script( 'jquery', '//ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js' );
wp_enqueue_script( 'jquery-ui', '//ajax.googleapis.com/ajax/libs/jqueryui/1.11.1/jquery-ui.min.js' );
wp_enqueue_script( 'jquery-custom', get_template_directory_uri() . '/admin/js/custom.js' );
}
}
add_action( 'wp_enqueue_scripts', 'wpse158453_enqueue_scripts' );
Sinon, vous pourriez essayer wp_dequeue_script plutôt que wp_deregister_script
J'espère que cela pourra aider.
//Remove jquery only on front page
add_action( 'wp_enqueue_scripts', 'my_deregister_javascript' );
function my_deregister_javascript() {
if ( is_front_page() ) {
wp_deregister_script( 'jquery' );
}
}
ajouter ce script dans votre thème function.php fichier que vous allez résoudre requête