Childtheme-CSS auf korrekte Weise laden

Coding / WordPress

Lange Zeit war es üblich, in einem Childtheme die CSS-Angaben vom Parenttheme als @import Anweisung an den Anfang der CSS-Datei des Childthemes zu schreiben.

Das ist schön einfach und übersichtlich. Aber @import ist nicht die eleganteste Methode ein Stylesheet einzubinden, denn diese Konstruktion kostet Ladezeit.
Auch der WordPress Codex sagt, man möge Stylesheets nicht mehr per @import, sondern über die functions.php einbinden.

Was passiert hier?

Das CSS des Childthemes wird so eingebunden, dass zuerst das CSS des Eltern-Themes geladen wird. Das erreicht man dadurch, dass man dem Child-CSS eine dependency (Abhängigkeit) zuweist, nämlich das Parent-CSS. Im Codebeispiel ist das der Teil, der in dem array steht:

Der Browser bekommt dadurch die Anweisung: Lade das Child-CSS nach dem Parent-CSS. Oder anders formuliert: Lade zuerst das Eltern-CSS, dann das Child-CSS.

Nach dem Array kann man noch die Version des Themes eintragen. So kann man sicherstellen, dass nach einem Update des Themes die Parent-Styles neu geladen werden und nicht einfach nur aus dem Cache geholt werden.

Was kann man mit einem Childtheme machen?

Webdesign / WordPress
illu-childtheme

Wie man ein Childtheme anlegt, hat Kirsten hier beschrieben. Aber wozu ist ein Childtheme gut und was kann man eigentlich damit machen? Oder anders gefragt: Wann ist ein Childtheme sinnvoll und wann eher nicht?

Über ein Childtheme passt man ein schon vorhandenes WordPress-Theme an die eigenen Vorstellungen an.
Man fängt also nicht bei Null an, sondern nutzt die Infrastruktur, die das Parent-Theme mitbringt. Und kann sich ganz auf die Details – auf die individuelle Note sozusagen – konzentrieren. Weiterlesen

Funktionen aus dem parent-theme deaktivieren (2)

WordPress

Zu meiner Schande muss ich gestehen, dass in dem Artikel Funktionen aus dem parent-theme deaktivieren ein dicker Fehler steckt, und zwar hier:
Das heißt also, wenn wir wollen, dass die Deregistrierung der Sidebars greift, müssen wir die Priorität richtig setzen. Die Priorität muss niedrig genug, damit die Funktion früher einsetzt als die entsprechende im Parent-Theme.

Richtig wäre gewesen:
Das heißt also, wenn wir wollen, dass die Deregistrierung der Sidebars greift, müssen wir die Priorität richtig setzen. Die Priorität muss hoch genug, damit die Funktion später einsetzt als die entsprechende im Parent-Theme.

Torsten Landsiedel hat’s gesehen und schreibt dazu:

‘Früher’ wird die Funktion aber eben genau nicht aufgerufen. In dem Originalzitat darüber steht es ja auch so:
‘By lowering the priority of our action, we ensure that it is called after the parent theme’s functions.php file is loaded.’
Wir verringern die Priorität (=höherer Wert), damit die Funktion (obwohl die Datei in der sie steht früher aufgerufen wird) trotzdem später gestartet wird. Denn bei gleicher Priorität werden Funktionen in der Reihenfolge ihres Ladevorgangs gestartet, was in diesem Fall dazu führen würde, dass wir etwas deregistrieren würden, was noch gar nicht da ist.

Siehe Codex:
$priority (int) (optional)
Used to specify the order in which the functions associated with a particular action are executed. Lower numbers correspond with earlier execution, and functions with the same priority are executed in the order in which they were added to the action.
Default: 10.

Das früher müsste also in ein später geändert werden und die Prio muss entsprechend hoch genug sein und nicht ‘niedrig genug’.

Danke, Torsten. Du bist der Beste.

Leserfrage: Widgets im Zuki-Theme

WordPress

hallo zusammen,
ich habe das zuki theme.
nun möchte ich eine Seite einfügen mit einem neuen Thema, die in sich wie eine startseite aufgebaut ist, aber mit auf meinem Grundblog erscheint.
also, man kommt auf die normale startseite, dann klickt man im hauptmenü auf das NEUE THEMA und kommt auf diese Seite. die ist aber nicht mit fortlaufenden beiträgen, sondern eben wie die normale startseite aufgebaut.
dort will ich genauso widgets einbauen wie auf der normalen startseite. also mit sidebars, 1 spaltigen Artikeln, 2 und 3 spalten, artikelinhalt….
geht das überhaupt? und wenn ja, wie? danke für eure Antwort. Gruß emmalotta

Hallo, emmalotta,

So ganz einfach mit “Bordmitteln” geht es leider nicht, denn die Startseite nimmt im Theme Zuki eine Sonderstellung ein. Nur dort werden die Front-Page-Widgets angezeigt. Alle anderen Seiten ticken anders.

Wenn Du Dir im Backend Deine Startseite anschaust, dann siehst Du ganz rechts unten unter “Attribute”, dass der Startseite ein spezielles Template zugrunde liegt, ein Template namens “Front Page”. Nur wenn das ausgewählt ist, wird die Startseite richtig (mit Widgets) dargestellt.
In diesem Front-Page-Template sind nämlich die Widgets eingebunden, die Du unter Design/Widgets in die dafür vorgesehenen Widgetbereiche einbauen kannst. Die Namen dieser Bereiche beginnen immer mit “Front Page”.

Der Aufbau der Startseite ist auf andere Seiten nicht übertragbar. Dazu müsste man weitere Templates bauen und dazu passende zusätzliche Widgetbereiche. Das wäre ein Eingriff in den Code, vom Backend aus ist das nicht machbar.

Ich hoffe, das war halbwegs verständlich. Wenn Du noch Fragen hast, schreib einfach einen Kommentar!

Schöne Grüße von Kirsten

Ist WordPress zu kompliziert?

WordPress
illu-knoten

Jeder, der sich irgendwann mit dem Gedanken an eine eigene Webseite beschäftigt hat, kennt WordPress. Es heißt, man muss kein HTML-Künstler sein um eine Seite zusammen zu bringen. Und auch Laien, sagt man, kommen mit WordPress gut zurecht. 

Der überwiegende Teil unserer Kunden pflegt seine Webseite selbst. Aber eine relativ konstante Zahl kapituliert früher oder später vor dem Backend. Ich vermute, dass der Löwenanteil an alten und ungepflegten Systemen da draußen auf das Konto der Überforderten geht, bei denen der Flirt mit WordPress nur von kurzer Dauer war.

In einem CMS stecken eine Menge abstrakter Denkmodelle: Das Konzept von Backend und Frontend ist für Laien schwer zu begreifen. Gleiches gilt für die unterschiedlichen Funktionen von Beiträgen und Seiten sowie die Systematik von Tags und Kategorien.

Weiterlesen