Ich verwende das gut geschriebene Oenology-Thema von Chip Bennett als Eltern für mein eigenes Kind-Thema.
In meinem Entwicklungsprozess habe ich festgestellt, dass es für Leute, die untergeordnete Themen schreiben, einige Herausforderungen gibt, wenn es darum geht, Stile zu steuern.
Ich habe gerade festgestellt, dass meine Hauptdatei style.css vor jedem anderen Stylesheet-Link oder jeder anderen Anweisung in <head> geladen wird. Dies erklärt, warum ich Probleme hatte, einige der übergeordneten Stile zu überschreiben.
Eine weitere Untersuchung des Problems zeigt, dass verschiedene übergeordnete Stylesheets und Stile an drei Stellen im <head> in die Warteschlange gestellt werden können. add_action('wp_print_styles',
, add_action('wp_enqueue_scripts',
Und dann add_action('wp_head',
.
Um die Dinge einfach zu halten, plane ich, zwei Stylesheets zu erstellen. Das erste Hauptblatt 'style.css' enthält nur den @import url()
Befehl, der zum Laden des Hauptstylesheets von Oenology erforderlich ist.
Das zweite Stylesheet würde meine untergeordneten Regeln enthalten. Um sicherzustellen, dass es nach allen anderen Regeln geladen ist , würde ich es mit in die Warteschlange stellen add_action( 'wp_head',
.
klingt das vernünftig oder gibt es einen besseren (korrekteren) Weg, dies zu tun?
Weiß übrigens jemand, was "/parent-theme/style.css ? MRPreviewRefresh = 723 " bedeutet?
Aktualisieren
wp_enqueue_style () scheint in wp_head () nicht zu funktionieren.
Prost,
Gregory
quelle
Die einzige Möglichkeit, um sicherzustellen, dass meine Stile das letzte Wort in der Kaskade hatten, bestand darin, sie am Ende von <head> über den Hook wp_head einzufügen. wp_enqueue funktioniert nicht in wp_head, daher musste ich den Link direkt wiederholen:Schließlich kann ich meine Stile relativ einfach einstellen, ohne ein hohes Maß an Spezifität oder die! wichtige Regel zu verwenden, die nur als letztes Mittel verwendet werden sollte.WP benötigt ein besseres Warteschlangensystem. Jeder Stil, ob ein Dateilink oder ein Inline-Stil, sollte durch denselben Hook geleitet werden, damit die Priorität ihre Reihenfolge bestimmen kann. Optional für Debugging-Zwecke wäre es nützlich, wenn der Hook auch die Prioritätswerte jedes Stils möglicherweise in kommentierter Form ausgibt.
Aktualisieren
Ich konnte die Kontrolle über die Stile in meinem untergeordneten Thema behalten, während ich die ursprüngliche Kaskade des übergeordneten Themas (das ein Haupt-Stylesheet, ein Unter-Stylesheet und einige Stilanweisungen verwendet) beibehalten habe, indem ich mein Stylesheet in zwei Teile geteilt habe, wie in erläutert die Frage. Ich verwende nicht mehr den Hook wp_head (), sondern den richtigen und standardmäßigen Hook wp_enqueue_scripts () mit einer hohen Ordnungszahl, um sicherzustellen, dass mein Stylesheet zuletzt geladen wird.
Das Standard-Stylesheet meines untergeordneten Themas:
die Funktion zum Einreihen meines Haupt-Stylesheets:
Es gibt jedoch einige WP-generierte Stilanweisungen (dh nicht das übergeordnete Thema), die nach meinem Stylesheet angegeben werden, und ich muss entweder CSS-Regeln mit hoher Spezifität verwenden, um die mich betreffenden Regeln zu überschreiben oder zu suchen Hooks, um sie zu deaktivieren, insbesondere die body.custom-background-Regel.
Vielen Dank für Ihre Kommentare.
Prost,
Gregory
quelle
Sie sollten immer verwenden
wp_enqueue_style()
, um Ihr Stylesheet zu laden, und diese Funktionen sollten mit Läufen im Kopf an den Hook wp_enqueue_scripts angehängt werden . Ich vermute, dass Sie es dort nicht angeschlossen haben, daher Ihr Problem. (Ab WP 3.3 wird bei aktiviertem WP_Debug eine Benachrichtigung ausgegeben , wenn eine Verbindung zu etwas anderem besteht.)wp_enqueue_style()
quelle