WordPress Child Theme style.css funktioniert nicht
Lesezeit: 6 Minuten
Ich habe eine Dateistruktur im gleichen Format wie mein übergeordnetes Thema erstellt. Mein Parent-Theme heißt Alpine und innerhalb von Alpine gibt es eine functions.php- und eine style.css-Datei. Es scheinen keine zusätzlichen style.css-Dateien vorhanden zu sein.
Ich habe ein Verzeichnis namens Alpine-child erstellt und darin eine Datei functions.php und style.css erstellt.
Ich kann nicht herausfinden, warum Änderungen, die ich an der untergeordneten style.css vornehme, nicht implementiert werden, aber sie sind es, wenn ich dieselben Änderungen in der übergeordneten style.css vornehme
Dies ist mein untergeordnetes style.css:
/*
Theme Name: Alpine Child
Theme URI: http://www.creative-ispiration.com/wp/alpine/
Description: My first child theme, based on Alpine
Author: MilkshakeThemes
Author URI: http://themeforest.net/user/milkshakethemes
Template: Alpine
Version: 1.0.0
Tags: one-column, two-columns, right-sidebar, fluid-layout, custom-menu, editor-style, featured-images, post-formats, rtl$
Text Domain: alpine-child
*/
Dies ist meine untergeordnete Datei functions.php:
Schauen Sie sich Ihre an <head> Schild. Sehen Sie sich vor allem die Reihenfolge Ihrer Stylesheets an.
Zuerst werden die Styles aus deinem Child-Theme hinzugefügt und dann alle Styles aus deinem Parent-Theme. Dadurch überschreiben die Stile des Parent-Themes die Stile deines Child-Themes.
Sie können die Priorität Ihrer ändern my_theme_enqueue_styles Funktion, die nach dem übergeordneten Element ausgeführt werden soll, indem der dritte Parameter von verwendet wird add_action. Dadurch werden Ihre Child-Theme-Stile zuletzt in die Warteschlange gestellt, sodass das CSS wie erwartet funktioniert.
Kann ich die obige PHP-Datei einfach in meine functions.php-Datei kopieren, um die Reihenfolge zu ändern?
– Gavin Reynoldson
11. Oktober 2016 um 18:05 Uhr
@GavinReynoldson Ja. Ich habe gerade Ihren ursprünglichen Code kopiert und Ihrem eine Priorität hinzugefügt add_action Anruf. Beachten Sie die add_action( 'wp_enqueue_scripts', 'my_theme_enqueue_styles', 11 ); hat jetzt einen dritten Parameter, der die Priorität hat. Dies wurde auf 11 gesetzt, da 10 die Standardpriorität ist.
– Jrod
11. Oktober 2016 um 18:07 Uhr
Ich habe das obige zu functions.php hinzugefügt und es gibt immer noch keine Änderung. Wenn ich nachschaue head Die letzte zu ladende Datei ist der übergeordnete Stil. Ich kann alpine-child/style.css überhaupt nicht geladen sehen.
– Gavin Reynoldson
11. Oktober 2016 um 18:17 Uhr
@GavinReynoldson Entschuldigung. Ihre Funktion wird ausgeführt, aber ich hatte das falsche Stylesheet in dem von mir geposteten Code. Ich habe meine Antwort aktualisiert, um Ihr untergeordnetes Stylesheet und nicht Ihr übergeordnetes Stylesheet hinzuzufügen.
– Jrod
11. Oktober 2016 um 19:45 Uhr
Toll. Bitte markieren Sie diese Antwort als richtig, damit diese Frage jemand anderem helfen kann.
Das geht leider auch nicht. Ich habe tatsächlich viele Variationen ausprobiert und auch versucht, @import zu verwenden. Nichts scheint zu funktionieren. Ich habe den Theme-Entwickler um Unterstützung gebeten. Danke
– Gavin Reynoldson
11. Oktober 2016 um 13:27 Uhr
Ich denke # get_stylesheet_directory_uri() . ‘/style.css’ # bezieht sich möglicherweise auf das übergeordnete Verzeichnis, wenn Sie das untergeordnete Verzeichnis wünschen.
– Craig Hicks
21. März 2018 um 22:16 Uhr
@CraigHicks, es bezieht sich auf das aktive Thema, das in diesem Fall das untergeordnete Thema ist.
– Avag Sargsjan
22. März 2018 um 7:33 Uhr
@CraigHicks, wenn du dir das ansiehst get_stylesheet_uri()ruft es die Funktion intern auf get_stylesheet_directory_uri()daher können sie keine Informationen zu verschiedenen Themen zurückgeben 🙂
– Avag Sargsjan
22. März 2018 um 7:38 Uhr
@AvagSargsyan – Danke für deinen Kommentar. Ich bin auf ein statisches Blogsystem umgestiegen: “Hexo”, das einfacher, aber für meine Bedürfnisse geeignet ist. Ich wollte tiefer graben, um herauszufinden, warum die obige Konfiguration funktionierte, während Ihre nicht funktionierte. Das nehme ich dir beim Wort get_stylesheet_uri() war nicht der Grund, also muss es einen anderen Grund geben. Aber jetzt ist WordPress weit, weit weg. Entschuldigen Sie.
– Craig Hicks
23. Juli 2018 um 16:19 Uhr
Die Antwort von Craig Hick hat bei mir funktioniert und mir ist auch klar, warum mein Standardcode aus der WordPress-Dokumentation nicht funktioniert hat.
<?php
add_action( 'wp_enqueue_scripts', 'my_theme_enqueue_styles' );
function my_theme_enqueue_styles() {
$parent_style="parent-style"; // This is 'twentyfifteen-style' for the Twenty Fifteen theme.
wp_enqueue_style( $parent_style, get_template_directory_uri() . '/style.css' );
wp_enqueue_style( 'child-style',
get_stylesheet_directory_uri() . '/style.css',
array( $parent_style ),
wp_get_theme()->get('Version')
); }
In meinem Fall die Linie wp_get_theme()->get(‘Version’) ist zurückgekommen 1.0.0 Dies war die gleiche Versionsnummer wie das übergeordnete Thema. Also habe ich einfach die CSS-Versionsnummer des Child-Themes auf geändert 1.0.1 und es hat funktioniert.
Nach dem Update von Divi 4.4.1 auf Divi 4.10.8 funktionierte das übergeordnete CSS des untergeordneten Designs nicht. Ich habe auf meiner Website recherchiert und festgestellt, dass die Divi style.css-Datei leer war und nur Header-Informationen enthielt (nach dem Update) und dass sich der zum Anzeigen des CSS erforderliche Code jetzt in einer anderen Datei befand (style-static.min.css). Ich habe den Dateinamen in meiner Child-Theme-functions.php-Datei von style.css in style-static.min.css geändert. Dies hat mein Problem gelöst und das CSS funktioniert.
Zuvor hatte der von mir verwendete Code nur den ersten Teil //load child theme custom CSS Teil, und es war nicht möglich, das benutzerdefinierte CSS abzurufen. Ich habe den oben vorgeschlagenen Code @jrod hinzugefügt und es hat funktioniert. Ich muss mit euch bestätigen, dass mein Child-Theme-Code vollständig ist und ich nichts weiter hinzufügen muss. Ich bin mir nicht sicher, ob dies auch die benutzerdefinierten JS-Dateien abruft, die ich in den JS-Dateien des untergeordneten Themas habe.
Kannst du einen Link zu deinem Projekt teilen?
– Jrod
11. Oktober 2016 um 15:00 Uhr
Ich hoste die Website derzeit auf einer AWS EC2-Instanz. Ich habe die Website über SSH bearbeitet. Dies ist die aktuelle Entwicklungsadresse: ec2-52-211-25-124.eu-west-1.compute.amazonaws.com
– Gavin Reynoldson
11. Oktober 2016 um 15:55 Uhr