Desregistrar scripts en una página específica
Necesito excluir ciertos scripts para que no se ejecuten en una página determinada. He probado este código pero no funciona: cuando inspecciono la página, los scripts siguen cargándose en el footer de mi página.
Aquí está mi código en functions.php
add_action( 'wp_enqueue_scripts', 'my_deregister_javascript', 100 );
function my_deregister_javascript() {
if ( !is_page('mi-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' );
}
}
¿Qué me falta? ¡Gracias!

Tienes un error básico en tu código. El siguiente código
if ( !is_page('mi-pagina') ) {
significa que si no estás en esa página, desregistres los scripts. Echa un vistazo a los operadores de php
! -> Negación !$x Verdadero si $x no es verdadero
Además, ¿por qué no excluir esta página específica cuando registres inicialmente estos scripts? Algo como:
add_action( 'wp_enqueue_scripts', 'my_register_javascript', 100 );
function my_register_javascript() {
if ( !is_page('mi-pagina') ) {
// REGISTRAR/ENCOLAR SCRIPTS
}
}
Es mucho más limpio y eficiente. No veo el sentido de registrar un script para luego desregistrarlo. Es mejor registrar los scripts condicionalmente desde el principio

Finalmente conseguí que SOLO mi página de inicio no cargue jQuery, pensé en compartirlo para posiblemente ahorrarle a otro desarrollador 8 horas de prueba y error.
// eliminar jQuery SOLO de la página de inicio
add_action( 'wp_enqueue_scripts', 'my_deregister_javascript' );
function my_deregister_javascript() {
if ( is_home('front-page') ) {
wp_deregister_script( 'jquery' );
}
}
NOTA: is_page de la pregunta inicial no funciona cuando quieres usar front-page o home en el argumento, debes usar is_home (eso me costó una hora)

Probablemente intentaría cargar esos scripts solo en páginas específicas, en lugar de cargarlos y luego descargarlos:
function wpse158453_enqueue_scripts() {
if(!is_page('mi-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' );
De lo contrario, podrías probar wp_dequeue_script en lugar de wp_deregister_script
Espero que esto ayude.

//Eliminar jQuery solo en la página de inicio
add_action( 'wp_enqueue_scripts', 'my_deregister_javascript' );
function my_deregister_javascript() {
if ( is_front_page() ) {
wp_deregister_script( 'jquery' );
}
}
Agrega este script en el archivo function.php de tu tema para resolver el problema con jQuery
