Support » Allgemeine Fragen » Neuling hat (Verständnis-?) Probleme mit Child Theme

  • Gelöst Phil

    (@derphilip)


    Moin Freundinnen und Freunde!

    Ich bin der Phil, wohne in südlichen Niedersachsen, bin 55, neu hier und bräuchte eure Hilfe! Ich kann einigermassen .NET C# und ein wenig noch ein paar andere Programmier- und Scriptsprachen, und WordPress ist totales Neuland für mich.

    Ich habe das Gerüst einer Website basierend auf 2021 Theme einigermassen ‚zusammengeschustert‘ und mittels Custom CSS Funktion ein wenig angepasst.

    Jetzt habe ich ein Child Theme angelegt entsprechend https://kinsta.com/de/blog/child-theme-wordpress-erstellen/ , weil überall dazu geraten wird. Eigentlich hatte ich erwartet, dass nach Aktivierung des Child Themes erstmal alles so aussieht wie ursprünglich. Dem ist aber nicht so 🙁

    So ziemlich alles, was ich im Customizer gemacht hatte, ist ‚verloren‘.
    – das Hintergrundbild wird nicht angezeigt,
    – die Header Einstellungen sind weg,
    – alle gelöschten Widgets sind wieder da,
    – der Custom css Code ist weg,
    – …

    Habe ich da was falsch verstanden? Oder ist die Anleitung von Kinsta falsch? Die Snippets unter https://developer.wordpress.org/themes/advanced-topics/child-themes/ sehen geringfügig anders aus, aber weil sie mit dem 2015 Theme agiert, denke ich mal, dass die Version älter ist. (hab ich jetzt auch probiert – funktioniert genausowenig)

    Auch habe ich in das style.css in meinem Child-Theme-Ordner den Custom CSS Code reinkopiert, aber das wird (nahezu?) komplett ignoriert :-/

    Was mache bzw. verstehe ich falsch??

    Vielen lieben Dank für eure Hilfe!!
    Phil

    Die Seite, für die ich Hilfe brauche: [Anmelden, um den Link zu sehen]

Ansicht von 14 Antworten - 1 bis 14 (von insgesamt 14)
  • Die Einstellungen, die du im Customizer vornimmst, werden Theme-bezogen gespeichert. Ein Child-Theme gilt dabei als eigenständiges Theme – du fängst also bei den Einstellungen wieder von vorne an. Alternativ kannst du zum Parent Theme wechseln (was deine bisherigen Einstellungen „reaktiviert“) und die Einstellungen mit dem Plugin Customizer Export/Import exportieren, dann zum Child-Theme zurückwechseln und dort importieren.

    Ich weiß, dass häufig empfohlen wird, ein Child-Theme anzulegen. Damit soll verhindert werden, dass du Änderungen an einem Theme vornimmst, die beim nächsten Update des Themes überschrieben werden. Statt dessen legst du ein Theme an, das lediglich Ergänzungen zu einem Parent Theme enthält.
    Wenn du nun z.B. den Footer ändern möchtest, ist es naheliegend, das Template footer.php des Parent-Theme in das Child-Theme zu kopieren und dann dort Änderungen vorzunehmen. Stellen wir uns aber mal vor, das Template hätte eine schwerwiegende Sicherheitslücke, die erst bekannt wird, nachdem du dein Child-Theme erstellt hast. Selbst wenn nun die Sicherheitslücke durch ein Update des Parent-Theme geschlossen wird, verwendest du weiterhin die Kopie der älteren Version – samt Sicherheitslücke. Du musst also bei Verwendung eines Child-Theme jedesmal prüfen, ob Updates des Parent-Theme Auswirkungen auf deinen Code haben (was von Torsten Landsiedel als „Child Theme Dilemma“ beschrieben wurde).

    Oft ist es so, dass lediglich eine Funktion hinzugefügt oder die Gestaltung geringfügig angepasst werden soll. Für eigene Funktionen kannst du statt eines Child-Theme das Plugin Code Snippets verwenden, das den Code nicht nur einbindet, sondern auch in übersichtlichen Häppchen leichter verwalten lässt. Änderungen am Stylesheet kannst du direkt im Customizer unter Zusätzliches CSS eintragen. Erst wenn du tatsächlich die Struktur einer Webseite ändern musst und das nicht mit einer PHP-Version umgesetzt werden kann, ist ein Child-Theme wirklich sinnvoll.

    Wenn du eigene CSS-Regeln hinzufügst und feststellst, dass sie nicht greifen, sind entweder die Regeln fehlerhaft oder nicht spezifisch genug. Verwendest du z.B. eine CSS-Regel p { color: blue; } um Absätze in Blau auszugeben, aber das (Parent-)Theme hat eine spezifischere CSS-Regel .entry-content p { color: green; }, wird deine CSS-Regel einfach übergangen.

    Noch besser ist es natürlich, wenn du ein Theme hast, dass dir viele Einstellungsmöglichkeiten im Customizer anbietet und bei dem du gar nichts programmieren brauchst.

    Leider sprengt es ein wenig den Rahmen, hier Grundkenntnisse in HTML, PHP, JavaScript und CSS zu vermitteln, aber bei ganz konkreten Fragen werfen wir gerne mal einen Blick drauf. Oft lässt sich mit den Entwicklertools des Browsers recht schnell herausfinden, wo das Problem liegt. Das habe ich bei deiner Seite noch nicht geprüft, weil mit dazu ein konkreter Hinweis fehlt, was ich mir anschauen soll.

    Thread-Starter Phil

    (@derphilip)

    Ganz herzlichen Dank für deine ausführliche und schnelle Antwort!!

    So wird mir das Verhalten bezüglich der Customizer Einstellungen klar und auch das „Child Theme Dilemma“ leuchtet mir ein. Nicht ganz verstehen tue ich, warum mein Code im Custom CSS scheinbar spezifischere Regeln überschreibt – gibt es da eine andere Hierachie, als wenn der Code im style.css steht (es ist ja der identische Code)?

    Dass ich überhaupt ein Child Theme verwenden wollte, resultierte konkret aus dem Wunsch, das Verhalten der Menüs zu ändern – Subeinträge sollen erst beim Hoovern oder besser beim Anklicken ‚ausgeklappt‘ werden -und- die Einträge, die Sub-Einträge enthalten, sollen ausser dem Ausklappen der Liste mit Untereinträgen keine Klick-Events haben (also keine Seite öffnen).

    Ich dachte, da muss man in’s php eingreifen? Aber in Anbetracht des „Child Theme Dilemma“ brächte mich ein Child Theme dann ja auch nicht weiter. Gibt es da vielleicht eine andre Lösung?

    ps:
    >> „…wenn du ein Theme hast, dass dir viele Einstellungsmöglichkeiten im Customizer anbietet und bei dem du gar nichts programmieren brauchst.“
    Ich weiss halt nicht, wie ich im Vorhinein herausbekomme, ob mit einem Theme alles geht, was/wie ich möchte. Eigentlich muss ich doch die Site mit jedem Theme erstellen, bis ich an einen Punkt komme, den ich mit ‚Boardmitteln‘ nicht mehr hinbekomme, und dann das gleiche mit dem nächsten Theme…?

    • Diese Antwort wurde geändert vor 2 Jahren, 2 Monaten von Phil.

    gibt es da eine andere Hierachie, als wenn der Code im style.css steht (es ist ja der identische Code)?

    Was du im Customizer im Feld „Zusätzliches CSS“ einträgst wird als letztes geladen und überschreibt daher Regeln für gleichnamige Selektoren. Gibst du z.B. p { color: blue; } an und das Theme verwendet p { color: red; }, wird der Text in Blau ausgegeben, weil deine Regel (als letztes geladen) die andere Regel überschreibt. Verwendet das Theme aber .entry-content p { color: red; } wird (trotz deiner nachträglich geladenen CSS-Regel) die spezifischere Regel des Themes verwendet (vgl. Spezifität).

    Subeinträge sollen erst beim Hoovern oder besser beim Anklicken ‚ausgeklappt‘ werden -und- die Einträge, die Sub-Einträge enthalten, sollen ausser dem Ausklappen der Liste mit Untereinträgen keine Klick-Events haben (also keine Seite öffnen).

    Das lässt sich alles ohne Child-Theme hinbekommen.

    Du kannst in Menüs „Platzhalter“ als Menüeinträge hinzufügen, indem du einen „individuellen Link“ mit der URL # einfügst und dem Platzhalter einen Namen gibst (z.B. „Fotos“ als Platzhalter für ein Menü mit lauter Foto-Links). Sobald der Menüeintrag im Menü ist, kannst du das #-Zeichen wieder löschen. Ich nehme an, das ist was du mit „Einträge, die Sub-Einträge enthalten, sollen ausser dem Ausklappen der Liste mit Untereinträgen keine Klick-Events haben (also keine Seite öffnen)“ meinst?
    Das Unterseiten erst bei Hover eingeblendet werden, ist nicht viel mehr als ein wenig CSS. Du findest hier z.B. ein paar nette Beispiele:

    https://codepen.io/maheshambure21/pen/QwXaRw

    Hallo,
    du kannst über das WordPress-Repository die Themes (https://de.wordpress.org/themes/) auch schon nach gewissen Gesichtspunkten filtern:
    Screenshot Einstellungen
    Ich setze übrigens sehr gerne das Theme GeneratePress bei Projekten ein. Kann ich wirklich empfehlen.
    Viele Grüße
    Hans-Gerd

    Thread-Starter Phil

    (@derphilip)

    Vielen, vielen Dank wieder für eure guten und schnellen Antworten!

    @pixolin Menüs:
    Eigentlich ist die Idee mit dem Hoovern Mist, weil sie auf Geräten mit Touch Screen nicht funktioniert (sorry dass ich es überhaupt in’s Spiel gebracht hab). Das Beste wäre also, das Untermenü einzublenden, wenn der das Untermenü enthaltende Eintrag geklickt wird (aber NUR die nächste Ebene).
    Derzeit werden aber im 2021 Menü alle Untereinträge / sämtliche Ebenen angezeigt, wenn man über den ‚Rootmenüeintrag‘ (also das, was in der Menüzeile steht) hoovert (oder auf das Plus daneben klickt, was ich aber wg Estetik ausgeblendet habe).

    Danke für den Tipp mit dem #! Funktioniert. Jetzt brauche ich nur noch einen Tipp, wie die Untermenüebene nur dann angezeigt wird, sobald ich den Eintrag klicke *rolleyes*

    @hage die Filterfunktion im Themes Repository hatte ich genutzt, aber wenn ich alles (eigentlich nur ein paar Punkte) angelickt hatte, was ich mir vorstelle (soweit ich die Filter’aspekte‘ verstehe), gab es nur noch 0 Treffer…

    Das GeneratePress Theme werde ich mir mal angucken. In der Beschreibung steht „If you use page builders, GeneratePress is the right theme for you.“ – heisst das, es funktioniert nur ‚richtig gut‘ in Verbindung mit einem Page Builder?

    danke & Grüsse!

    • Diese Antwort wurde geändert vor 2 Jahren, 2 Monaten von Phil.
    • Diese Antwort wurde geändert vor 2 Jahren, 2 Monaten von Phil.

    @derphilip

    heisst das, es funktioniert nur ‚richtig gut‘ in Verbindung mit einem Page Builder?

    nein, auf keinen Fall.
    Wir benutzen bei unseren Projekten fast ausschließlich den Block-Editor.

    Thread-Starter Phil

    (@derphilip)

    @hage kann ich bei dem GeneratePress ein Hintergrund(bild) realisieren (in der free Version – vlt per css oder so)?

    Ansonsten sieht das ja schon ganz brauchbar aus für meine Zwecke. Die Menüs funktionieren zumin in der Richtung, die ich mir vorstelle.

    • Diese Antwort wurde geändert vor 2 Jahren, 2 Monaten von Phil.
    • Diese Antwort wurde geändert vor 2 Jahren, 2 Monaten von Phil.

    @derphilip
    an sich geht das problemlos in der Premium-Version, siehe hier.
    Das sollte aber auch per CSS in der kostenfreien Version möglich sein (habe ich aber nicht getestet, weil wir die Premium-Version einsetzen).

    Schau mal bitte hier.

    Thread-Starter Phil

    (@derphilip)

    supi, danke! ich probier’s mal 🙂

    @derphilip Deine Frage war mit dem Schlagwort „modlook“ versehen. Bitte nutze diese Schlagwort nur, wenn du den Eindruck hast, dass gegen Forenregeln verstoßen wurde und sich ein/e Moderator/-in den Thread anschauen sollte.
    Das Schlagwort „modlook“ sollte nicht dazu missbraucht werden, Fragen als „dringend“ herauszuheben. Wir beantworten Fragen in unserer freien Zeit und versuchen, möglichst alle Fragen kurzfristig zu beantworten.
    Wenn deine Frage beantwortet wurde, freuen wir uns, wenn du sie als „gelöst“ markierst.

    Thread-Starter Phil

    (@derphilip)

    Moin Bego Mario @pixolin !

    ich habe nur die Schlagwörter ‚Child Theme‘ und ‚Custom CSS‘ reingeschrieben. Mit Sicherheit habe ich nicht „modl…“ reingeschrieben, und ich hätte nicht mal gewusst, was es heisst oder bewirkt, und mit meinem Anliegen hat es ja wirklich nichts zu tun. Wenn es wirklich drin gestanden hat (hast du es rausgenommen?), dann treibt hier irgendwer sein unlauteres Unwesen.

    Meine ursprüngliche Frage ist ja eigentlich beantwortet. Ich wollte mir allerdings offen halten, ggf. noch mal an das mittlerweile Geschriebene anzuknüpfen – geht das auch noch, wenn ich es auf ‚gelöst‘ setze?

    danke & beste Grüsse!
    Phil

    Mit Sicherheit habe ich nicht „modl…“ reingeschrieben

    OK … keine Ahnung, wieso es dann drin gestanden hat.

    … dann treibt hier irgendwer sein unlauteres Unwesen.

    Eher unwahrscheinlich.

    Meine ursprüngliche Frage ist ja eigentlich beantwortet. Ich wollte mir allerdings offen halten, …

    Es gibt in der Sidebar einen Menüpunkt „Ungelöste Themen“, mit dem sich Helfer das nächste, noch nicht beantwortete Problem anschauen können. Einen Thread als „gelöst“ zu markieren bedeutet nicht, dass nichts mehr dazu geschrieben werden kann. Allerdings sinken die Chancen, weitere Antworten zu bekommen, wenn niemand mehr in den „abgehakten“ Thread reinschaut.

    Thread-Starter Phil

    (@derphilip)

    Danke wieder für die Antwort @pixolin !

    obwohl wir langsam off-topic geraten, noch eine kurze Frage dazu: Ich meine mich zu erinnern, dass ich irgendwann mal aus Versehen auf den Knopf ‚Dieses Thema … [Melden]‘ geraten war – kann es sein, dass sich dadurch das beschriebene Schlagwort eingeschlichen hat? Ich hatte zwar sofort den Browser-Back betätigt, und mir war nix aufgefallen, aber wer weiss…

    Ich hab jetzt nochmal versucht, den Thread auf gelöst zu setzen, hoffentlich ist es mir diesmal gelungen. Scheinbar bin ich etwas ‚ungeschickt’… 🙂

    danke, ggf. sorry & beste Grüsse!
    Phil

    • Diese Antwort wurde geändert vor 2 Jahren, 1 Monat von Phil.

    … dass ich irgendwann mal aus Versehen auf den Knopf ‚Dieses Thema … [Melden]‘ geraten war – kann es sein, dass sich dadurch das beschriebene Schlagwort eingeschlichen hat?

    Ja genau.

    Ich hab jetzt nochmal versucht, den Thread auf gelöst zu setzen, hoffentlich ist es mir diesmal gelungen.

    Ist es, Dankeschön. 🌻

Ansicht von 14 Antworten - 1 bis 14 (von insgesamt 14)
  • Das Thema „Neuling hat (Verständnis-?) Probleme mit Child Theme“ ist für neue Antworten geschlossen.