¿Cómo forzar a wp_enqueue_scripts para que se cargue al FINAL de <head>?
Estoy cargando scripts mediante wp_enqueue_scripts
en mi tema hijo.
El único problema es que mi script style.css
se carga ANTES que los scripts de los plugins, pero necesito sobrescribir el CSS de los plugins con mi style.css. Por lo tanto, necesita cargarse DESPUÉS de los scripts de los plugins.
No quiero añadir "!important" a todos mis estilos CSS porque sería tedioso y podría romper parte de mi diseño.
Intenté añadir prioridad pero no afectó el orden de carga en absoluto.
add_action('wp_enqueue_scripts', 'scripts', 9999);
Simplemente me gustaría que wp_enqueue_scripts
se ejecute al final del header, justo antes de </head>
. ¿Cómo se puede hacer? Gracias :-)
ACTUALIZACIÓN:
¡Lo resolví!
Simplemente registra el filtro con:
add_action('wp_print_styles', 'scripts');
wp_print_styles
se carga con una prioridad de 8, y aún los coloca en el header porque es parte de wp_head
.
Descubrí esto mirando en wp-includes/default-filters.php, ¡así que gracias por el consejo! :-)
wp_enqueue_scripts
se añade por defecto con una prioridad de 1
a wp_head
. Consulta wp-includes/default-filters.php
para más detalles.
Puedes intentar cambiar la prioridad:
remove_action( 'wp_head', 'wp_enqueue_scripts', 1 );
add_action( 'wp_head', 'wp_enqueue_scripts', 9999 );
Pero no lo recomiendo. Probablemente haya una buena razón para el valor predeterminado. Algunos scripts podrían dejar de funcionar si cambias esto.

Desafortunadamente, hacer esto hace que todo el sitio web deje de funcionar.

Creo que la forma más compatible con WordPress de hacer esto es usar el parámetro $deps
de wp_enqueue_styles()
. Suponiendo que los estilos del plugin se carguen mediante wp_enqueue_styles()
(lo cual, lamentablemente, muy pocos hacen), puedes listar un array de los handles de las hojas de estilo de las que dependen tus estilos y así se cargarán después.
