Quale parametro devo passare a wp_enqueue_style per dipendere dal foglio di stile del tema?

16 feb 2011, 07:20:00
Visualizzazioni: 1.24K
Voti: 1

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' );
0
Tutte le risposte alla domanda 2
0

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.

16 feb 2011 10:00:38
0

Pensavo di condividere la mia soluzione alternativa che sto usando finché non avrò la risposta alla domanda...

La mia soluzione alternativa è:

  1. Taglia e incolla il codice CSS dal plugin, nel tema (cioè style.css) e modificarlo secondo necessità.
  2. 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).

16 feb 2011 09:21:20