¿Cómo elimino de la cola el archivo CSS de un tema principal?

30

Mi tema principal (Starkers) agrega un archivo CSS que estoy tratando de eliminar (en su lugar, quiero usar @import para poder anular los estilos más fácilmente). Starkers tiene lo siguiente en sus funciones.php:

add_action( 'wp_enqueue_scripts', 'script_enqueuer' );

function script_enqueuer() {
    wp_register_script( 'site', get_template_directory_uri().'/js/site.js', array( 'jquery' ) );
    wp_enqueue_script( 'site' );

    wp_register_style( 'screen', get_template_directory_uri().'/style.css', '', '', 'screen' );
    wp_enqueue_style( 'screen' );
}

He intentado lo siguiente en el niño functions.php, pero las etiquetas de enlace y secuencia de comandos todavía aparecen en la sección principal.

add_action('init', 'removeScripts');
function removeScripts() {
    wp_dequeue_style('screen');
    wp_deregister_script('site');
}

He comprobado dos veces para ver si están codificados en el encabezado principal y no lo están.

    
pregunta jmotes 18.09.2012 - 18:20

2 respuestas

37
  

En cambio, quiero usar @import para poder anular los estilos más fácilmente

Simplemente. No lo hagas Hacer. Eso.

Simplemente saltas al mismo gancho y luego eliminas el registro / decolar los estilos / scripts y lanzas tus estilos personalizados.

function PREFIX_remove_scripts() {
    wp_dequeue_style( 'screen' );
    wp_deregister_style( 'screen' );

    wp_dequeue_script( 'site' );
    wp_deregister_script( 'site' );

    // Now register your styles and scripts here
}
add_action( 'wp_enqueue_scripts', 'PREFIX_remove_scripts', 20 );

El motivo para anular el registro y anular el registro de los scripts es simple:

  

Tenga en cuenta que si desea poder usar cualquiera de esos manejadores ( 'screen' o 'site' ) después de sacarlos de la cola, también deberá cancelar su registro. Por ejemplo: wp_deregister_style( 'screen' ); y wp_deregister_script( 'site' ); - peterjmag

    
respondido por el kaiser 18.09.2012 - 18:37
-1

Aquí se explica cómo eliminar la hoja de estilo del tema principal y reemplazarla con la hoja de estilo de un tema secundario O simplemente quitar la hoja de estilo del padre para que no se cargue nunca.

Funciones del tema de Starker.php:

add_action( 'wp_enqueue_scripts', 'script_enqueuer' );

function script_enqueuer() {
    //...
    wp_register_style( 'screen', get_template_directory_uri().'/style.css', '', '', 'screen' );
    wp_enqueue_style( 'screen' );
}

Recuerda el identificador al que llaman el estilo, 'screen'

Reemplazar los temas principales por la hoja de estilo del tema secundario

Funciones del tema Starker-Child.php:

function​ ​custom_starkers_styles() {

    //Remove desired parent styles
    wp_dequeue_style( 'screen');

    //Replace with custom child styles
    wp_register_style( 'screen-child',​ ​trailingslashit( get_template_directory_uri() ). 'screen.css' );
    wp_enqueue_style( 'screen-child​'​);
}

add_action( 'wp_enqueue_scripts','custom_starkers_styles', 20 );

Eliminar la hoja de estilo del tema principal

Funciones del tema Starker-Child.php:

function​ ​remove_starkers_styles() {

    //Remove desired parent styles
    wp_dequeue_style( 'screen');

}

add_action( 'wp_enqueue_scripts','remove_starkers_styles', 20 );

Le damos a la add_action () del tema secundario una prioridad de 20 (el valor predeterminado es 10) porque queremos que se ejecute DESPUÉS de que el tema principal lo haya puesto en cola. Cuanto mayor sea la prioridad, más tarde se ejecutará. 20 > 10, por lo que la acción del tema secundario siempre se ejecutará después de que el tema principal ya se haya ejecutado.

    
respondido por el CHergott 07.03.2016 - 22:52

Lea otras preguntas en las etiquetas