Cómo eliminar todos los estilos para una plantilla de página específica
Sé cómo crear temas hijos y plantillas de página. Tengo un tema hijo de Salient llamado Salient-Child, y una plantilla de página llamada blankPage.php.
Para todas las páginas que usen esta plantilla, quiero que no se cargue ningún CSS.
Conozco funciones como wp_register_script, wp_deregister_script, wp_deregister_style, wp_dequeue_style
, pero no estoy seguro de dónde/cómo usarlas.
He intentado escribir algunas de esas funciones dentro del propio blankPage.php, y también he intentado editar functions.php. He probado usando un condicional con if(is_page_template('blankPage.php')){...}
.
Cualquier orientación sería apreciada.
¡Gracias!

Puedes eliminar estilos y scripts JavaScript específicos para una plantilla de página en particular como se muestra a continuación. Agrega el código en el archivo functions.php
de tu tema actual. Para ver la lista de todos los JS y CSS que podrías querer modificar, puedes usar un plugin como este: https://wordpress.org/plugins/debug-bar-list-dependencies/
/**
* Eliminar scripts JavaScript específicos.
*/
function se_remove_script() {
if ( is_page_template( 'blankPage.php' ) ) {
wp_dequeue_script( 'some-js' );
wp_dequeue_script( 'some-other-js' );
}
}
add_action( 'wp_print_scripts', 'se_remove_script', 99 );
/**
* Eliminar hojas de estilo específicas.
*/
function se_remove_styles() {
if ( is_page_template( 'blankPage.php' ) ) {
wp_dequeue_style( 'some-style' );
wp_dequeue_style( 'some-other-style' );
}
}
add_action( 'wp_print_styles', 'se_remove_styles', 99 );
También puedes eliminar todos los estilos y scripts JavaScript de una sola vez para una plantilla de página específica como se muestra a continuación. Agrega el código en el archivo functions.php
de tu tema actual.
/**
* Eliminar todos los scripts JavaScript.
*/
function se_remove_all_scripts() {
global $wp_scripts;
if ( is_page_template( 'blankPage.php' ) ) {
$wp_scripts->queue = array();
}
}
add_action( 'wp_print_scripts', 'se_remove_all_scripts', 99 );
/**
* Eliminar todas las hojas de estilo.
*/
function se_remove_all_styles() {
global $wp_styles;
if ( is_page_template( 'blankPage.php' ) ) {
$wp_styles->queue = array();
}
}
add_action( 'wp_print_styles', 'se_remove_all_styles', 99 );

Tu función se_remove_all_styles
parece estar en el camino correcto para lo que estoy buscando, pero cuando la probé, eliminó todos los estilos de TODAS las páginas, independientemente de la plantilla. No entiendo por qué, dado que hay una declaración "If". ¿Alguna idea sobre cómo depurar por qué esto estaría sucediendo en mi caso? ¡Gracias!

Parece que resolví el problema, y fue tan simple que estoy sorprendido de que nunca haya visto a nadie mencionar esto antes.
Primero, eliminé todo mi tema hijo para poder empezar desde cero.
Luego, usé https://wordpress.org/plugins/one-click-child-theme/ para crear un tema hijo completamente nuevo de Salient.
Después, en el menú Apariencia > Editor, revisé el archivo functions.php
y noté que ya tenía generado automáticamente add_action( 'wp_enqueue_scripts', 'theme_enqueue_styles' );
y function theme_enqueue_styles()
.
Así que simplemente envolví el contenido de la función dentro de if ( !is_page_template( 'rawHtmlPage.php' ) ) { ...}
.
