¿Qué parámetro debo pasar a wp_enqueue_style para depender de la hoja de estilos del tema?
He escrito un plugin básico de galería que usa wp_enqueue_style para incluir una hoja de estilos en la página. Me gustaría que el tema de WordPress pueda sobrescribir los estilos del plugin, lo que significa que quiero que mi plugin funcione correctamente y cargue el archivo CSS antes que el archivo CSS del tema.
wp_enqueue_style tiene un parámetro deps
precisamente para este requisito. Mi pregunta es: ¿qué valor debo usar para el parámetro deps
si quiero decir "dependo del archivo CSS del tema"?
El código actual del plugin es incorrecto porque usa false
para el parámetro deps
:
// Encolar un archivo de estilos CSS - ver http://codex.wordpress.org/Function_Reference/wp_enqueue_style
wp_enqueue_style('bitvol_galleria_css', BITVOL_GALLERIA_URL . '/bitvolution-image-galleria.css', false, $this->bitvol_galleria_version, 'all' );
Primer problema - tienes la dependencia al revés. Depender de algo significa cargar después de la dependencia, mientras que tú quieres que sea antes.
Segundo problema - la hoja de estilos del tema en realidad no usa enqueue, normalmente está codificada directamente en el archivo header.php
del tema. Y como parece que viene antes de la llamada a wp_head()
- no tienes un hook para asegurar que tu hoja de estilos esté por encima.
Así que esto normalmente se maneja como tu solución alternativa - una hoja de estilos en cola con opción para desactivarla mediante código o una opción en el administrador.

Pensé en compartir mi solución temporal que estoy usando hasta que conozca la respuesta a la pregunta...
Mi solución temporal es:
- Cortar y pegar el código CSS del plugin en el tema (es decir, en
style.css
) y modificarlo según sea necesario. - Decirle al tema que bloquee la salida de la hoja de estilos del plugin desregistrándola en
functions.php
:
Código para poner en functions.php
:
add_action( 'wp_print_styles', 'my_deregister_styles', 100 );
function my_deregister_styles() {
wp_deregister_style( 'bitvol_galleria_css' );
}
En cierto modo, esta solución temporal podría ser la mejor solución (porque el rendimiento del sitio web será mejor al minimizar el número de recursos CSS incluidos en la sección HEAD).
