Identificar la prioridad de style.css para que pueda hacer que una pequeña carga de archivo CSS sea la última

4

Tengo un poco de css que cambia cada hora y quiero

  1. guárdelo en un segundo archivo (aparte de style.css) y

  2. cárguelo después de el archivo style.css de mi tema.

Creo que puedo hacer que se cargue antes de style.css estableciendo su prioridad a style.css menos uno (por ejemplo, si el estilo principal.css tiene una prioridad de 10, mi bit de código tendría una prioridad de 9) .

Pero aquí está mi problema: aparte de prueba y error, no sé cómo identificar, mediante programación, la prioridad de una hoja de estilo. Sé que podría usar simplemente el método de reducir a la mitad el valor, pero preferiría no hacerlo. Sería bueno aprender una forma de principio para resolver este problema. Tal vez hay una prioridad predeterminada de archivo CSS de tema principal? Si este es el caso, puedo probar fácilmente el ($ defaultPriorityValue - 1). ¿Es esto posible, y si no es así, cuál es una buena manera de hacerlo?

p.s. No quiero poner en cola los estilos en línea en mi functions.php porque necesito guardar este código en un archivo separado

Aunque encontré la solución funcional que enumeré en las respuestas a continuación, todavía me gustaría que alguien me explicara si existe una manera de identificar, mediante programación, la prioridad de una hoja. Gracias!

    
pregunta CoderScissorhands 31.12.2016 - 15:14

2 respuestas

3

Cuando pone en cola un archivo correctamente, una instancia de wp_styles (más información sobre esta ) clase se crea. La prioridad de las acciones se ignora. Así que no importa si escribes algo como

add_action ('wp_enqueue_scripts','function_adding_main_style',10);
add_action ('wp_enqueue_scripts','function_adding_small_style',11);

La razón es exactamente la existencia del sistema de dependencia. WP primero recopila todos los archivos de estilo en cola y luego los verifica para las dependencias. Si A.css se pone en cola antes de B.css pero el primero depende de este último, se cargarán en consecuencia. Puede ver que esta reordenación ocurre en el método all_deps de la clase padre .

Para abreviar una larga historia: no se supone que debas meterte con la prioridad de los archivos de estilo fuera del sistema de dependencia que WP te da. Tu propia solución es la mejor.

Dicho esto, siempre puedes sortear el sistema de encolado y repetir tu archivo directamente hacia el final del gancho wp_head . Poco elegante, pero efectivo.

    
respondido por el cjbj 31.12.2016 - 17:30
0

La solución de dependencia

Una solución funcional que encontré y probé con éxito vino de la respuesta de @ helgatheviking a esta pregunta . Esta solución implica establecer una dependencia en un archivo CSS pequeño (que es un tercer argumento) al ponerlo en cola. Establece la dependencia del pequeño archivo CSS en el identificador / identificador del archivo CSS principal.

 wp_enqueue_style(
        'my-little-css-style',
        get_stylesheet_directory_uri() . '/my_little_style.css',
        'themename-style' // this is the dependency, which I set to  the handle of the main css stylesheet. It makes the small sheet load before the main one. 
    );
    
respondido por el CoderScissorhands 31.12.2016 - 15:46

Lea otras preguntas en las etiquetas