Cum să dezînregistrezi scripturi pe anumite pagini în WordPress
Am nevoie să exclud anumite scripturi de pe o anumită pagină. Am încercat acest cod dar nu funcționează - când inspectez pagina, scripturile sunt încă încărcate în footer.
Iată codul meu din 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' );
}
}
Ce am omis? Mulțumesc!

Ai o greșeală de bază în codul tău. Următorul cod
if ( !is_page('my-page') ) {
înseamnă că dacă nu te afli pe acea pagină, dezînregistrezi scripturile. Aruncă o privire la operatorii php
! -> Negare !$x Adevărat dacă $x nu este adevărat
De asemenea, de ce să nu excludeți această pagină specifică când înregistrați inițial aceste scripturi, cum ar fi
add_action( 'wp_enqueue_scripts', 'my_register_javascript', 100 );
function my_register_javascript() {
if ( !is_page('my-page') ) {
// ÎNCARCĂ/ÎNREGISTREAZĂ SCRIPTURI
}
}
Este mult mai curat și mai eficient. Nu văd rostul în a înregistra un script și apoi să-l dezînregistrezi din nou. Mai bine înregistrează scripturile condiționat de la început

În sfârșit am reușit să fac ca DOAR pagina mea principală să nu încarce jQuery, am vrut să împărtășesc acest lucru pentru a putea salva și altor dezvoltatori 8 ore de încercări și erori.
// elimină jQuery DOAR de pe pagina principală
add_action( 'wp_enqueue_scripts', 'my_deregister_javascript' );
function my_deregister_javascript() {
if ( is_home('front-page') ) {
wp_deregister_script( 'jquery' );
}
}
NOTĂ: is_page din întrebarea inițială nu funcționează când doriți să folosiți front-page sau home ca argument, trebuie să folosiți is_home (asta mi-a luat o oră)

Probabil aș încerca să încarc acele scripturi doar pe anumite pagini, mai degrabă decât să le încarc și apoi să le elimin:
function wpse158453_enqueue_scripts() {
if(!is_page('pagina-mea')) { // Verifică dacă nu este pagina specificată
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' ); // Adaugă acțiunea pentru încărcarea scripturilor
Altfel, ai putea încerca wp_dequeue_script în loc de wp_deregister_script
Sper că acest lucru te ajută.

// Elimină jQuery doar pe pagina principală
add_action( 'wp_enqueue_scripts', 'my_deregister_javascript' );
function my_deregister_javascript() {
if ( is_front_page() ) {
wp_deregister_script( 'jquery' );
}
}
Adaugă acest script în fișierul functions.php al temei tale pentru a rezolva problema cu jQuery
