Eliminar estilos CSS de una página específica

16 feb 2016, 23:07:44
Vistas: 14.5K
Votos: 3

Necesito eliminar todos los estilos CSS del tema (tanto del hijo como del padre) de una página singular usando functions.php en un tema hijo. Esto es lo que estoy añadiendo actualmente al functions.php del tema hijo:

// importar estilos CSS del tema padre e hijo
function theme_enqueue_styles() {
wp_enqueue_style('parent-style', get_template_directory_uri() . '/style.css');
wp_enqueue_style('child-style', get_stylesheet_directory_uri() . '/style.css', array($parent_style));}

// eliminar los estilos CSS del padre e hijo
function PREFIX_remove_scripts() {
wp_dequeue_style( 'parent-style' );
wp_dequeue_style( 'child-style' );
wp_dequeue_style( 'parent-style-css' );
wp_deregister_style( 'parent-style' );
wp_deregister_style( 'child-style' );
wp_deregister_style( 'parent-style-css' );

Quiero aplicar esta función PREFIX_remove_scripts solo a una página del sitio. ¿Cómo puedo lograrlo mejor? ¿O hay otra forma adecuada? ¡Muchas gracias de antemano!

2
Comentarios

Usando functions.php puedes verificar si la página es la que deseas deshabilitar el CSS O puedes configurar una página php personalizada y excluir las hojas de estilo

Lucky Chingi Lucky Chingi
16 feb 2016 23:11:41

¿Sería más eficiente crear una página php personalizada que usar functions.php?

Ben Wright Ben Wright
17 feb 2016 19:30:36
Todas las respuestas a la pregunta 2
0

Puedes usar etiquetas condicionales para apuntar a la página específica donde necesitas eliminar los estilos. Puedes usar is_page() para apuntar a una página de tipo page (a diferencia de otros tipos de contenido) y pasar un ID de página, slug, título o ningún argumento para apuntar a cualquier página.

function wpse_217881_remove_scripts() {

    // Comprueba la página que quieres apuntar
    if ( is_page( 'About Me And Joe' ) ) {

        // Elimina los estilos
        wp_dequeue_style( 'parent-style' );
        wp_dequeue_style( 'child-style' );
        wp_dequeue_style( 'parent-style-css' );
        wp_deregister_style( 'parent-style' );
        wp_deregister_style( 'child-style' );
        wp_deregister_style( 'parent-style-css' );
    }
}

Asumo que ya lo estás haciendo, pero para ser explícito, deberías llamar a la función que elimina/desregistra los estilos desde un hook de acción - en este caso wp_enqueue_scripts.

De la documentación de wp_enqueue_scripts:

A pesar del nombre, se usa para encolar tanto scripts como estilos

add_action( 'wp_enqueue_scripts', 'wpse_217881_remove_scripts' );

// Opcionalmente añade una prioridad si es necesario, ej:
// add_action( 'wp_enqueue_scripts', 'wpse_217881_remove_scripts', 20 );
17 feb 2016 01:37:14
1

La mejor solución para mí fue crear una plantilla con un encabezado diferente o sin él.

17 jun 2022 19:15:08
Comentarios

Tu respuesta podría mejorarse con información adicional de apoyo. Por favor, [edita] para añadir más detalles, como citas o documentación, para que otros puedan confirmar que tu respuesta es correcta. Puedes encontrar más información sobre cómo escribir buenas respuestas en el centro de ayuda.

User User
22 jun 2022 17:31:13