Antworten auf deine Fragen:
Neues Thema erstellen

Erledigt - [WP 3.9.1] Child-Theme lädt CSS vom Parent-Theme

lachender_engel

Aktives Mitglied

Hallo, Zusammen.
Ich verweifle bei der Einrichtung eines Child-Themes und bitte Euch um Hilfe.
Ein gekauftes Theme soll ich anpassen. Dazu setze ich ein Child-Theme auf. Aber, wa smich verzweifeln lässt, ist die Tatsache, dass trotz Child-Theme die CSS-Dateien des Parent-Theme geladen werden. Ob wohl in meinem Child Theme nichts steht, außer der Header. Und zwar sieht er so aus:
Code:
/*
Theme Name: Die Firma
Author: lachender_engel
Description: Child-Theme für das Parent-Theme
Version: 1.0
Template: parent-theme-ordner
*/
Das Child-Theme ist aktiviert und wird auch angesprochen. Das habe ich damit getestet, dass ich eine leere index.php in den Ordner des Child-Theme speicherte. In dem Moment habe ich nur eine weiße Seite bei der Ausgabe.
In Wordpress sehe ich auch das Child-Theme aktiviert. Benenne ich den Ordner des Partent-Theme um gibt Wordpress auch einen Fehler aus, mit dem Hinweis, dass das Parent-Theme fehlt.
Daher schlussfolgere ich, dass Child-Theme ist richtig eingerichtet und wird angesprochen.

Nun ist es so, dass beim Aufruf des Child-Themes dennoch die ganze Seite "ordentlich" aussieht, und im Header auch dei vier CSS-Dateien des Parent-Themes aus dessen Ordner geladen werden, ob wohl im Child-Theme kein Verweis auf eine CSS-Datei besteht.

Nun verzweifle ich, da ich absolut keine Idee habe wie ich unterbinde, dass die CSS-Dateien des Parent-Theme geladen werden.
Kennt jemand das Problem und kann mit helfen/einen Tipp geben?

Vielen Dank!
 

Rata

Lachender Engel, Du bringst mich zum Weinen ;)

Tieferer Sinn des Child-Themes ist ja gerade, dass vom Parent-Theme all das nachgeladen wird, was im Child Theme nicht steht.
Schreib was in Dein Child-Theme rein und es wird funktionieren :)


Lieber Gruß
Rata
 

lachender_engel

Aktives Mitglied

Danke, Rata, aber das stimmt so nicht.
SInn ist es Dateien, die nicht im Child-Theme sind, aus dem Parent-Theme zu holen.
Aber das Child-Theme lädt die CSS des Child-Themes. Und darf es nicht die CSS-Datei des Parent-Themes berücksichtigen, oder?
Damit muss - nach meinem Verständnis und Wissen - alles was im Parent-Theme-CSS steht unberücksichtigt bleiben, da dieses ja nicht geladen wird. Und damit auch nicht die @import-Zeilen. Dennoch werden diese Zeilen importiert. Und dass will/muss ich verhindern.

Oder hat sich da in den letzten Versionen, von WP, etwas geändert?
 

lachender_engel

Aktives Mitglied

Aber Rata, genau das ist es ja. Da ich im Code NICHT den Style vom Parent-Theme aufrufe DARF das Child-Theme doch keinen Style haben. Oder?!
Dennoch werden die grid.css und base.css aus dem Parent-Theme geladen. Nur, warum?
Ich brauche ein Child-Theme *ohne* Style. Also führe ich den Import-Link *nicht* durch.
Dennoch wird der Import-Link aus dem Parent-CSS geladen. Und da meine ich, dass das falsch ist. Ich weiß aber nicht wieso.
 

Rata

Nun, ein paar Hinweise, nennen wir Dein Child-Theme mal blablabla-child...

In Deinem Header stehen zwei wichtige Zeilen, die das bewirken, die auch korrekt sein müssen, sonst geht gar nix:

- Theme Name: blablabla-child
- Template: twentyfourteen <---als Beispiel


Dein Child-Theme muß die erwähnte Import-Zeile haben und eine eigene Datei namens style.css, mehr nicht.
Diese style.css legst Du in dem Verzeichnis des Child-Themes unter wp-content/themes/blablabla-child ab.

Dein Parent-Theme funktioniert fortan ähnlich einem „Framework“.
Die Änderungen, die Du vornehmen möchtest, trägst Du z. B. in die style.css Deines blablabla-child ein und alles funktioniert, auch dann noch, wenn das Parent-Theme in einer neuen Version geladen wird.

Jetzt klar? :) Du hältst mich von der Sonne fern...
rata-64.png
... :ironie:


Lieber Gruß
Rata
 

lachender_engel

Aktives Mitglied

Danke, Rata, aber wir reden über zwei Sachen.
Ich will KEINEN STYLE VOM PARENT nutzen!
Ich mache nicht täglich Child Theme, aber bisher war es so: Lege ich die style.css für das Child-Theme an und mache KEINEN IMPORT, dann hat das Theme auch KEIN STYLE.

Ich muss den Import nur machen, wenn ich den Style des Parent-Theme als Grundlage nutzen und meine Änderungen danach eintragen will. Das will ich aber nicht.

Alles, was Du mir schreibst bezieht sich darauf die Styles vom PArent als Grundlage für meine Anpassungen zu nehmen. Das will ich aber nicht!

Ganz banal, ein Child-Theme ohne Styles vom Parent.
 

Rata

Dann schreib doch Dein eigenes style.css, wo zum Teufel soll das Problem liegen?! :mad:

Ohne Import des style.css Deines Parent-Themes wird der Dreck nicht funktionieren und sollte sich wohl auch nicht mehr „Child-Theme“ nennen dürfen.
„Kuckucks-Theme“ würd' ich noch grad so durchgehen lassen :D

Mach mal, ich bin mal weg.



Lieber Gruß
Rata
 
Also, ich kenn das so:
Ein Child-Theme dient dazu, ein Theme zu ändern, ohne dass einem die Änderungen beim nächsten Theme-Update wieder geplättet werden. Das geht natürlich nur, wenn man die Änderungen in das Child-Theme schreibt, wo sie nicht durch Änderungen des Parent-Themes „bedroht“ werden.
Klar muss dann ein Child-Theme ohne Änderungen (also nur mit den formal nötigen Dateien) alle Daten des Parent-Themes laden (sonst wär’s ja kein Child-Theme), also auch die CSS.
Und die kann man dann eben ändern, weil die CSS des Child-Themes nach der des Parent-Themes geladen wird. Das ist alles. Punkt.
 

Orlandoo

Nicht mehr ganz neu hier

Hallo lachender_engel,
ich finde es schon bemerkenswert, wie Du auf die korrekte Beantwortung Deiner Frage reagierst. Erst erklärst Du Rata, seine Antwort sei so nicht richtig und begründest dies dann mit "Sinn ist es Dateien, die nicht im Child-Theme sind, aus dem Parent-Theme zu holen.". Falsch! Sinn ist es, CSS-Angaben, die Du ändern willst, in Deinem Child-Theme zu überschreiben. Anders sieht es da aus mit den Template-Dateien. Wenn Du eine solche in Deinen Child-Theme-Ordner legst, wird tatsächlich nicht mehr die (gleichnamige) Template-Datei aus dem Eltern-Theme geladen, sondern die aus Deinem Child-Theme. Lerne also erst einmal, wie WordPress funktioniert, bevor Du die Antworten von anderen Foren-Mitgliedern, die Dir freundlich und sogar kostenlos helfen wollen, als falsch hinstellst.

Was Du willst ist erst einmal völlig egal - Du musst Dich daran orientieren, wie die Eltern-Child-Theme-Geschichte funktioniert. Wenn Du das CSS des Eltern-Themes nicht laden willst kannst Du dort ja einfach die CSS-Datei (bis auf den Header!) leeren - das musst Du dann allerdings bei jedem Update des Eltern-Themes erneut durchführen. Oder Du erstellst gleich ein eigenes Theme - es ist Dir ja freigestellt, dass Du dazu die Template- und weitere PHP-Dateien des gekauften Templates als Vorlage verwendest. Dann kannst Du das gekaufte Theme allerdings nicht mehr so einfach updaten.
 
Zuletzt bearbeitet:

lachender_engel

Aktives Mitglied

ich finde es schon bemerkenswert, wie Du auf die korrekte Beantwortung Deiner Frage reagierst. Erst erklärst Du Rata, seine Antwort sei so nicht richtig und begründest dies dann mit "Sinn ist es Dateien, die nicht im Child-Theme sind, aus dem Parent-Theme zu holen.". Falsch!
Ich will niemandem zu nahe treten, aber Orlandoo, das ist FALSCH!
Sinn ist es, CSS-Angaben, die Du ändern willst, in Deinem Child-Theme zu überschreiben.
Das bestreite ich doch auch gar nicht. Ich erkläre DIr gerne warum ich so vorgehe wie ich vorgehe:
Das Parent-Theme hat fünf @import-Zeilen. Drei davon brauche ich weiter, eine davon ist für die Farben und die fünfte lädt ein CSS für erweiterte jQuery-Klassen.
Die jQuery-Klassen brauche ich nicht (Slider und noch was). Die Farben passe ich in meiner eigenen color.css an.
Daher will ich in der style.css die Import-Zeilen so aufbauen, wie ich sie brauche. Und nicht den ganzen "Rotz" aus der Parent-CSS laden und ihn mit meiner eigenen CSS modifizieren. Stichwort Ladezeit.

Daher noch mal zur Ausgangssituation:
Ich lade ein Child Theme. Aufgrund dessen verarbeitet Wordpress die style.css des Child-Themes und (eigentlich) NICHT die style.css des Parent-Theme. Richtig?
Jetzt sagt Ihr mir, dass neben der style.css aus dem Child-Theme die Angaben aus dem style.css des Parent-Theme so oder so übernommen werden, oder?!
Und da ist der Hase begraben! Das verstehe ich bisher anders!
Egal wo ich nachlese, auch in dem Video-Training von Pascal (hier auf PSD-T), heißt es IMMER, ich muss die style.css des Parent-Theme mit der style.css des Child-Theme importieren. Sonst ist das Child-Theme ohne Styles! So steht es auch im Codex, dazu.
Und es kommt dieses Beispiel:
Code:
/*
Theme Name: Twenty Fourteen Child
Theme URI: http://example.com/twenty-fourteen-child/
Description: Twenty Fourteen Child Theme
Author: John Doe
Author URI: http://example.com
Template: twentyfourteen
Version: 1.0.0
Tags: light, dark, two-columns, right-sidebar, responsive-layout, accessibility-ready
Text Domain: twenty-fourteen-child
*/

@import url("../twentyfourteen/style.css");

/* =Theme customization starts here
-------------------------------------------------------------- */
Soweit sind wir uns einig, oder?

Jetzt lasse ich das @import url("../twentyfourteen/style.css"); aus dem Child-Theme weg. Nur auch dann lädt Wordpress alle @import aus dem Parent-Theme style.css nach.
Also war meine Frage hier (oder sollte sein): Lädt Wordpress 3.9 jetzt IMMER die style.css des Parent-Theme auch, wenn ich die im Child-Theme gar nicht importiere?
 

Orlandoo

Nicht mehr ganz neu hier

"Ich lade ein Child Theme. Aufgrund dessen verarbeitet Wordpress die style.css des Child-Themes und (eigentlich) NICHT die style.css des Parent-Theme. Richtig?"
:: Nein, falsch. WordPress verarbeitet die style.css des Parent-Themes und anschließend die style.css des Child-Themes.

"Jetzt sagt Ihr mir, dass neben der style.css aus dem Child-Theme die Angaben aus dem style.css des Parent-Theme so oder so übernommen werden, oder?!
Und da ist der Hase begraben! Das verstehe ich bisher anders!"
:: Dass Du es anders verstehst ist schon klar. Du verstehst es nur leider nicht richtig …

"Also war meine Frage hier (oder sollte sein): Lädt Wordpress 3.9 jetzt IMMER die style.css des Parent-Theme auch, wenn ich die im Child-Theme gar nicht importiere?"
:: Genau so ist es. Weshalb im Beispiel aus dem Codex die style.css des Parent-Themes explizit inkludiert wird erschließt sich mir momentan allerdings auch nicht.
 
So steht es auch im Codex, dazu.

Das ist richtig.
Jetzt lasse ich das @import url("../twentyfourteen/style.css"); aus dem Child-Theme weg. Nur auch dann lädt Wordpress alle @import aus dem Parent-Theme style.css nach.
Also war meine Frage hier (oder sollte sein): Lädt Wordpress 3.9 jetzt IMMER die style.css des Parent-Theme auch, wenn ich die im Child-Theme gar nicht importiere?

Ich muss zugeben: Das habe ich noch nie probiert.
:: Genau so ist es. Weshalb im Beispiel aus dem Codex die style.css des Parent-Themes explizit inkludiert wird erschließt sich mir momentan allerdings auch nicht.

... und da wäre ich auch mal gespannt. Wäre ja sonst doppelt gemoppelt.
 

Rata

Steht in #6 im zweiten Absatz: der Header liefert die Info ;)

Zum Mitmeißeln:
Child-Theme ist vorhanden und ausgewählt
WP läd' das Parent-Theme aus dem Header komplett und ändert das noch ab, was im Child-Theme abgeändert steht.
Sind zusätzliche, im Parent-Theme nicht vorhandene .php-Dateien „anwesend“, werden die auch noch geladen.
Soweit der Normalfall.


Was Du nun willst, ist etwas anders, etwas pervers - ich will da aber gar nicht urteilen.
Die Antworten habe ich Dir oben schon gegeben: Schreib Dein eigenenes, komplettes style.css! Dann kannst Du auch die Import-Zeile weglassen.


Theoretisch kann Dein Child-Theme aus einer 1:1 Kopie des Parent-Theme bestehen, empfehlenswert, wenn man lange Ladezeiten liebt :D


Lieber Gruß
Rata
 

lachender_engel

Aktives Mitglied

"Ich lade ein Child Theme. Aufgrund dessen verarbeitet Wordpress die style.css des Child-Themes und (eigentlich) NICHT die style.css des Parent-Theme. Richtig?"
:: Nein, falsch. WordPress verarbeitet die style.css des Parent-Themes und anschließend die style.css des Child-Themes.
Ok, nehem ich so an.
Doch dann verstehe ich nicht wieso auf der Codex-Seite das hier steht:
Likewise, in the '@import url' line, 'twentyfourteen' should be replaced with the name of your parent theme if you wish to import the parent's stylesheet.
Das Augenmerk liegt auf if you wish to import the parent's stylesheet.
Mein English ist schon ganz gut um zu übersetzen "..,wenn Du das Parent-Theme Stylesheet importieren willst.".
Da ich das nicht will, importiere ich es nicht. Dennoch ist es da. Steht es also im Codex falsch?

(OFFTOPIC ON)
Ich finde es schade, dass ich hier anfeindet werde und mir das Gefühl gegeben wird, ich bin ein Depp. Denn ich bin wirklich nicht unbelehrbar! Sonst würde ich hier nicht fragen.
Und, dass meine Frage berechtigt ist zeigt, dass im Codex vielleicht was falsches steht, oder?!
Aber damit lebe ich, weil hier im Forum immer gerne das Gefühl gegeben wird, dass die Fragenenden keine Existenzberechtigung haben. Vermutlich um sich selber gegenüber den Fragenden besser darzustellen.

Der Einzige, der neutral antwortet ist rodemund. Danke dafür!
(OFFTOPIC OFF)
 

Rata

Ich fasse es nicht!

Wann wirst Du endlich begreifen, daß das xyz.css des Parent-Themes automatisch übernommen wird und nur durch ein eigenes xyz.css des Child-Themes überschrieben werden kann?
Schreibe ich Kiswahili?
Wenn Du das xyz.css des Parent-Themes nicht übernehmen willst, dann mußt Du ein komplettes, überschreibendes (!) xyz.css in Dein Child-Theme legen.



Das steht da oben so und so oft in dieser Formulierung oder jener.


Dafür nun von Dir auch noch als „Anfeinder“ bezeichnet zu werden, ist schon grenzwertig!
rata-64.png



Du raffst es einfach nicht, machst Dich selbst zum „Deppen“ – Deine Worte!




Hier ein letzter Versuch, dann gebe ich es auf:


Was passiert eigentlich?
Das komplette Parent-Theme wird geladen, interpretiert, dargestellt, um welches es sich handelt, steht bereits als Template-Eintrag im Header Deines Child-Themes.

In Deinem Header stehen zwei wichtige Zeilen, die das bewirken, die auch korrekt sein müssen, sonst geht gar nix:

- Theme Name: blablabla-child
- Template: twentyfourteen <---als Beispiel


Nur solche Abweichungen werden anschließend (!) vorgenommen, die in Deinem Child-Theme vermerkt sind.

Willst Du also eine andere – abgespeckte – style.css, dann wirst Du schon notgedrungen eine andere, auskommentierende (!) style.css in Deinem Child-Theme hinterlegen müssen.
Punkt.
Basta!
Tust Du das nicht, werden Reste aus dem style.css des Parent-Themes übernommen, die Du nicht haben willst.


Was Deine Englischkenntnisse anbelangt:
Der Satz, auf den Du Dich beziehst, schließt das von mir genannte doch nicht aus!
Lies doch mal den nächsten Satz gleich mit ;) ...

Note: The child theme’s stylesheet is included after the parent theme's and styles will therefore override those in the parent theme’s stylesheet.

Du mußt also etwas schreiben, das die ungewünschten Stellen überschreibt.
Schwierig bis lästig bei Deinem ungewöhnlichen Ansinnen.


Randbemerkung zum besseren Verständnis: In die Import-Zeile kannst Du theoretisch auch das stylesheet eines völlig anderen Themes einbinden, wenn es denn auf dem Server liegt und Du die passenden Einträge dort vornimmst.



Lösung, ...

...zum 3. Mal nun, weil Du Verständnisschwierigkeiten hast noch ausführlicher, was kein Vorwurf sein soll, das geht jedem von uns von Zeit zu Zeit so, ...„Ochse vorm Berg“ usw.:

Kopiere Dir das stylesheet Deines Parent-Themes.
In dieser Kopie kommentierst Du all das aus, was Du nicht haben willst.
Anschließend nimmst Du noch restliche Änderungen vor.
Dann legst Du dieses angepasste stylesheet in Dein Child-Theme.
Fertig :cool:

Machst Du es anders, wird das stylesheet des Parent-Themes eben nicht vollständig überschrieben.



Lieber Gruß
Rata
 

Orlandoo

Nicht mehr ganz neu hier

Ich nehme (fast) alles zurück und behaupte das Gegenteil. Das Beispiel im Codex ist (wen wundert's) korrekt - nachdem es so im Codex steht, habe ich doch meine Zweifel bekommen und mir mal kurz eine Testumgebung aufgebaut. Und siehe da - wenn ich das Beispiel aus dem Codex entsprechend abwandle und die Zeile
@import url("../twentyfourteen/style.css");
weglasse sieht die Seite ziemlich ungestyled aus.
Warum das Beispiel die style.css des Parent-Themes inkludiert? Nun, es handelt sich lediglich (wie im Codex üblich) um einen Beispiel-Code, den man sinnvoll an die eigenen Bedürfnisse anpassen muss.

Zum Problem von lachender_engel: Eigentlich müsste es reichen, wenn Du die style.css Deines Parent-Themes nicht inkludierst (das Beispiel aus dem Codex also für Deine Bedürfnisse anpasst) und stattdessen die CSS-Dateien des Parent-Themes, die Du doch nutzen möchtest, selbst einbindest.

Das könnte aber noch einen Haken haben: ich selbst habe vielfach ein Partent-Theme (eigentlich eher ein CSS-Framework) genutzt, dass sehr wohl in der Anfangs von mir beschriebenen Weise arbeitet (weshalb ich dachte, das wäre die normale Vorgehensweise von WordPress, ist es aber nicht). Es wäre also möglich, dass Dein Parent-Theme ebenfalls abweichend von der im Codex beschriebenen Weise grundsätzlich die CSS-Dateien des Parent-Themes einbindet. Das solltest Du dann mit einigen Zeilen PHP-Code in der functions.php Deines Child-Themes unterbinden (funktioniert nur dann, wenn Dein Parent-Theme sauber programmiert wurde).
 

afr0kalypse

Allwissendes Karmameerschweinchen!

Interessant wie hier auf den Codex verwiesen wird und ihn scheinbar keiner außer Lachender_Engel und jetzt auch Orlandoo gelesen hat...
Fakt ist:
Ist das Parent Theme ordentlich als solches programmiert und hat man im eigens erstellten Child Theme nur die style.css mit den Informationen
Theme Name: New Child
Template: parent-folder
so wird die Seite ohne Stylesheets angezeigt.

@lachender_engel schau mal in deinem Parent Theme nach, wie die Stylesheets eingebunden werden. get_stylesheet_directory() sollte hier der richtige Weg sein.
Alternativ werden Stylesheets auch in der functions.php geladen via wp_register_style() und wp_enqueue_style() Funktion. In dem Fall kannst du die Stylesheets in deiner eigenen functions.php überschreiben, sofern das Parent Theme diese Anweisungen in ein if(!function_exists(...)) gepackt hat...

Ich hoffe ich konnte dir damit weiter helfen.
Ansonsten kommen wir jetzt alle wieder runter und haben uns lieb :)
 

Mr_Quick

Ich bin so - wie Ich bin

Muss ich auch mal ne Frage dazu stellen.
Kann man in das Child Theme nur

... die style.css einbauen und somit aufrufen lassen
... geht das auch mit .php
... geht das auch mit .php Dateien die in Unterordnern liegen (original Themes)

danke im Voraus
 
Bilder bitte hier hochladen und danach über das Bild-Icon (Direktlink vorher kopieren) platzieren.
Antworten auf deine Fragen:
Neues Thema erstellen

Willkommen auf PSD-Tutorials.de

In unseren Foren vernetzt du dich mit anderen Personen, um dich rund um die Themen Fotografie, Grafik, Gestaltung, Bildbearbeitung und 3D auszutauschen. Außerdem schalten wir für dich regelmäßig kostenlose Inhalte frei. Liebe Grüße senden dir die PSD-Gründer Stefan und Matthias Petri aus Waren an der Müritz. Hier erfährst du mehr über uns.

Stefan und Matthias Petri von PSD-Tutorials.de

Nächster neuer Gratisinhalt

03
Stunden
:
:
25
Minuten
:
:
19
Sekunden

Neueste Themen & Antworten

Flatrate für Tutorials, Assets, Vorlagen

Zurzeit aktive Besucher

Statistik des Forums

Themen
118.640
Beiträge
1.538.506
Mitglieder
67.559
Neuestes Mitglied
mic4mac
Oben