Identificando a prioridade de style.css para que eu possa fazer um pequeno carregamento de arquivo CSS por último

4

Eu tenho um pouco de CSS que muda de hora em hora e eu quero

  1. mantenha-o em um segundo arquivo (exceto style.css) e

  2. carregue após o arquivo style.css do meu tema.

Acredito que posso carregar antes de style.css definindo sua prioridade para style.css menos um (por exemplo, se o main style.css tiver uma prioridade de 10, meu bit de código teria uma prioridade de 9) .

Mas aqui está o meu problema: além da tentativa e erro, não sei como identificar, programaticamente, a prioridade de uma folha de estilo. Eu sei que poderia simples usar o método de reduzir pela metade para aprimorar o valor, mas eu prefiro não fazer isso. Seria bom aprender uma maneira de resolver este problema. Talvez haja uma prioridade padrão do arquivo CSS do tema principal? Se este for o caso, posso facilmente tentar o ($ defaultPriorityValue - 1). Isso é possível, e se não é uma boa maneira de fazer isso?

p.s. Eu não quero enfileirar estilos embutidos no meu functions.php porque eu preciso manter este código em um arquivo separado

Embora tenha encontrado a solução funcional que listei nas respostas abaixo, ainda assim gostaria que alguém explicasse se existe uma maneira de id, programaticamente, a prioridade de uma planilha. Obrigado!

    
por CoderScissorhands 31.12.2016 / 15:14

2 respostas

3

Quando você enfileiraia corretamente um arquivo, uma instância do wp_styles (mais sobre isso ) é criada. A prioridade das ações é ignorada. Então não importa se você escreve algo como

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

O motivo é exatamente a existência do sistema de dependência. Primeiro, o WP coleta todos os arquivos de estilo enfileirados e os verifica quanto a dependências. Se A.css for enfileirado antes de B.css , mas o primeiro depender do segundo, eles serão carregados de acordo. Você pode ver esse reordenamento acontecer no método all_deps da classe pai .

Para encurtar a história: você não deve mexer com a prioridade dos arquivos de estilo fora do sistema de dependência que o WP oferece. Sua própria solução é a melhor.

Dito isso, você sempre pode contornar o sistema de enfileiramento e ecoar seu arquivo diretamente no final do gancho wp_head . Deselegante, mas eficaz.

    
por cjbj 31.12.2016 / 17:30
0

A solução de dependência

Uma solução funcional que encontrei e testei com sucesso veio da resposta do @ helgatheviking a esta questão . Essa solução envolve a configuração de uma dependência em um pequeno arquivo CSS (que é um terceiro argumento) ao enfileirá-lo. Você define a dependência do arquivo CSS pequeno para o identificador / id do arquivo 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. 
    );
    
por CoderScissorhands 31.12.2016 / 15:46