Ce parametru trebuie să transmit la wp_enqueue_style pentru a depinde de fișierul de stil al temei?

16 feb. 2011, 07:20:00
Vizualizări: 1.24K
Voturi: 1

Am scris un plugin de galerie de bază care folosește wp_enqueue_style pentru a include un fișier de stil pe pagină. Aș dori ca tema WordPress să poată suprascrie stilul pluginului, ceea ce înseamnă că aș vrea ca pluginul meu să fie compatibil și să încarce fișierul CSS înainte de fișierul de stil al temei.

wp_enqueue_style are un parametru deps special pentru această cerință. Întrebarea mea este: ce valoare ar trebui să folosesc pentru parametrul deps dacă vreau să spun "depind de fișierul de stil al temei"?

Codul actual al pluginului este incorect deoarece folosește false pentru parametrul deps:

   // Încarcă un fișier CSS - vezi 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
Toate răspunsurile la întrebare 2
0

Prima problemă - ai dependența inversată. A depinde de ceva înseamnă încărcarea după dependență, în timp ce tu vrei mai devreme.

A doua problemă - fișierul de stiluri al temei nu utilizează efectiv funcția enqueue, de obicei este codat direct în fișierul header.php al temei. Și deoarece se pare că apare înainte de apelul wp_head() - nu ai niciun hook pentru a te asigura că fișierul tău de stiluri este deasupra lui.

Deci acest lucru este de obicei gestionat ca soluția ta temporară - fișierul de stiluri adăugat în coadă cu opțiunea de a-l dezactiva prin cod sau o opțiune în administrare.

16 feb. 2011 10:00:38
0

Am decis să postez soluția pe care o folosesc temporar, până când voi afla răspunsul la întrebare...

Soluția mea temporară este:

  1. Tăiați și lipiți codul CSS din plugin, în tema (adică în style.css) și modificați-l după nevoie.
  2. Spuneți temei să blocheze pluginul de a afișa o foaie de stil prin dezînregistrarea acesteia în functions.php:

Cod de introdus în functions.php:

add_action( 'wp_print_styles', 'my_deregister_styles', 100 );

function my_deregister_styles() {
  wp_deregister_style( 'bitvol_galleria_css' );
}

În anumite privințe, această soluție temporară ar putea fi chiar mai bună? (deoarece performanța site-ului va fi îmbunătățită prin reducerea numărului de resurse CSS incluse în secțiunea HEAD).

16 feb. 2011 09:21:20