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:

<?php
add_action( 'wp_enqueue_scripts', 'my_theme_enqueue_styles' );
function my_theme_enqueue_styles() {
    wp_enqueue_style( 'parent-style', get_template_directory_uri() . '/style.css' );
}
?>

  • 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


Wordpress Child Theme stylecss funktioniert nicht
Jrod

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.

<?php
add_action( 'wp_enqueue_scripts', 'my_theme_enqueue_styles', 11 );
function my_theme_enqueue_styles() {
    wp_enqueue_style( 'child-style', get_stylesheet_uri() );
}
?>

  • 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.

    – Jrod

    12. Oktober 2016 um 14:50 Uhr

Wordpress Child Theme stylecss funktioniert nicht
Craig Hicks

Das hat bei mir funktioniert:

<?php
function my_theme_enqueue_styles() {
    $parent_style="twentyseventeen-style"; 
    $child_style="twentyseventeen-child-style";
    wp_enqueue_style( $parent_style, get_template_directory_uri() . '/style.css' );
    wp_enqueue_style( $child_style, get_stylesheet_uri() );
}
?>

und keine der anderen Antworten tat es.

  • Danke. Das funktionierte für mich und half mir zu erkennen, warum nichts anderes auch funktionierte.

    – San Francesco

    3. Mai 2020 um 14:41 Uhr

  • Dies funktioniert nach dem Hinzufügen add_action( 'wp_enqueue_scripts', 'my_theme_enqueue_styles' ); danke Craig

    – Unaiza Khalid

    1. März um 6:15


Sie müssen das untergeordnete Thema in die Warteschlange einreihen style.css Ihre Funktion sollte also lauten:

function my_theme_enqueue_styles() {

    $parent_style="parent-style"; 

    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')
    );
}
add_action( 'wp_enqueue_scripts', 'my_theme_enqueue_styles' );

Werfen Sie einen Blick auf die Dokumentation.

  • 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.

Siehe unter dem Code, den ich verwendet habe:

add_action( 'wp_enqueue_scripts', 'theme_enqueue_styles', 11);
function theme_enqueue_styles() {
    wp_enqueue_style( 'parent-style', get_template_directory_uri() . '/style-static.min.css' );
    wp_enqueue_style( 'child-style',
        get_stylesheet_directory_uri() . '/style.css',
        array('parent-style')
    );
}

1647328749 877 Wordpress Child Theme stylecss funktioniert nicht
Vikash Kumar

<?php
add_action( 'wp_enqueue_scripts', 'my_theme_enqueue_styles' );
function my_theme_enqueue_styles() {
    wp_enqueue_style( 'parent-style', get_template_directory_uri() . '/style.css' );
}
?>

1647328750 445 Wordpress Child Theme stylecss funktioniert nicht
Abe

Mein Child-Theme hat derzeit folgenden Code:

<?php
add_action( 'wp_enqueue_scripts', 'enqueue_parent_styles' );

function enqueue_parent_styles() {
   wp_enqueue_style( 'parent-style', get_template_directory_uri().'/style.css' );
}

//load child theme custom CSS
add_action( 'wp_enqueue_scripts', 'my_theme_enqueue_styles', 11 );
function my_theme_enqueue_styles() {
    wp_enqueue_style( 'child-style', get_stylesheet_uri() );
}

?>

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.

1004120cookie-checkWordPress Child Theme style.css funktioniert nicht

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy