Quale parametro devo passare a wp_enqueue_style per dipendere dal foglio di stile del tema?
Ho scritto un plugin gallery di base che utilizza wp_enqueue_style per includere un foglio di stile nella pagina. Vorrei che il tema WordPress possa sovrascrivere lo stile del plugin, il che significa che vorrei che il mio plugin si comporti correttamente e carichi il file css prima del file css del tema.
wp_enqueue_style ha un parametro deps
proprio per questo requisito. La mia domanda è: quale valore devo usare per il parametro deps
se voglio dire "dipendo dal file css del tema"?
Il codice attuale del plugin non è corretto perché utilizza false
per il parametro deps
:
// Includi un file CSS di stile - vedi 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' );

Primo problema - hai la dipendenza al contrario. Dipendere da qualcosa significa caricare dopo la dipendenza, mentre tu vuoi che sia prima.
Secondo problema - il foglio di stile del tema non utilizza effettivamente enqueue, di solito è codificato direttamente nel file header.php
del tema. E poiché sembra venire prima della chiamata wp_head()
- non hai un hook per assicurarti che il tuo foglio di stile sia sopra di esso.
Quindi questo viene comunemente gestito come il tuo workaround - foglio di stile in coda con l'opzione di disabilitarlo tramite codice o opzione nell'amministrazione.

Pensavo di condividere la mia soluzione alternativa che sto usando finché non avrò la risposta alla domanda...
La mia soluzione alternativa è:
- Taglia e incolla il codice CSS dal plugin, nel tema (cioè
style.css
) e modificarlo secondo necessità. - Dire al tema di bloccare il plugin dall'output di un foglio di stile deregistrandolo in
functions.php
:
Codice da inserire in functions.php
:
add_action( 'wp_print_styles', 'my_deregister_styles', 100 );
function my_deregister_styles() {
wp_deregister_style( 'bitvol_galleria_css' );
}
In un certo senso, questa soluzione alternativa potrebbe essere la soluzione migliore? (perché le prestazioni del sito saranno migliori minimizzando il numero di risorse CSS incluse nella sezione HEAD).
