deregistrare script su determinate pagine
Devo escludere alcuni script dal caricamento su una determinata pagina. Ho provato questo codice ma non funziona - quando ispeziono la pagina gli script vengono ancora caricati nel footer.
Ecco il mio codice nel file functions.php
add_action( 'wp_enqueue_scripts', 'my_deregister_javascript', 100 );
function my_deregister_javascript() {
if ( !is_page('mia-pagina') ) {
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' );
}
}
Cosa mi manca? Grazie!

Hai un errore di base nel tuo codice. Il seguente codice
if ( !is_page('my-page') ) {
significa che se non sei su quella pagina, deregistri gli script. Dai un'occhiata agli operatori php
! -> Not !$x Vero se $x non è vero
Inoltre, perché non escludere questa pagina specifica quando registri inizialmente questi script, qualcosa come
add_action( 'wp_enqueue_scripts', 'my_register_javascript', 100 );
function my_register_javascript() {
if ( !is_page('my-page') ) {
// REGISTRA/ACCODA GLI SCRIPT
}
}
È molto più pulito ed efficiente. Non vedo il motivo di registrare uno script e poi deregistrarlo nuovamente. Piuttosto registra gli script condizionalmente fin dall'inizio

Finalmente sono riuscito a fare in modo che SOLO la mia pagina iniziale non carichi jQuery, ho pensato di condividerlo per risparmiare potenzialmente ad altri smanettoni 8 ore di tentativi ed errori.
// rimuove jQuery SOLO dalla pagina iniziale
add_action( 'wp_enqueue_scripts', 'my_deregister_javascript' );
function my_deregister_javascript() {
if ( is_home('front-page') ) {
wp_deregister_script( 'jquery' );
}
}
NOTA: is_page dalla domanda iniziale non funziona quando si vuole usare front-page o home nell'argomento, bisogna usare is_home (questo mi è costato un'ora)

Probabilmente proverei a caricare quegli script solo su pagine specifiche, invece di caricarli e poi rimuoverli:
function wpse158453_enqueue_scripts() {
if(!is_page('mia-pagina')) {
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' );
In alternativa potresti provare wp_dequeue_script invece di wp_deregister_script
Spero che sia d'aiuto.

// Rimuove jQuery solo nella pagina frontale
add_action( 'wp_enqueue_scripts', 'my_deregister_javascript' );
function my_deregister_javascript() {
if ( is_front_page() ) {
wp_deregister_script( 'jquery' );
}
}
Aggiungi questo script nel file function.php del tuo tema per risolvere il problema con jQuery
