Support » Themes » Habe ich das child theme/funcitons.php richtig (und effizient) angelegt?

  • fsdk

    (@fsdk)


    Hallo zusammen,

    ich habe soeben eine child-version unseres themes angelegt, und möchte hier nur auf nummer Sicher gehen und nachhören, ob das so in Ordnung ist.
    Entsprechend dieser Anleitung habe ich die functions.php im child theme so angelegt:

    <?php
    function theme_enqueue_styles() {
    
       // wp_enqueue_style( 'parent-style', get_template_directory_uri() . '/style.css' );
    
    	wp_deregister_style( 'theme');
    	wp_deregister_style( 'global-css');
    	wp_deregister_style('responsive-css');
    
    	wp_register_style('global-css', CSS_URI . '/global.min.css');
    	wp_register_style('theme', get_template_directory_uri(). '/style.css');
    	wp_register_style('responsive-css', CSS_URI . '/responsive.css');
    
    	wp_enqueue_style('global-css');
    	wp_enqueue_style('theme');
    	wp_enqueue_style('responsive-css');
    	wp_enqueue_style('font-1', 'http://fonts.googleapis.com/css?family=Roboto:500,900,100,300,700,400', '');
    
    	wp_enqueue_style('font-2', 'http://fonts.googleapis.com/css?family=Roboto+Condensed:700,300,400', '');
    	wp_enqueue_style( 'childtheme-style', get_stylesheet_directory_uri().'/style.css', array('theme') );
    
    }
    add_action( 'wp_enqueue_scripts', 'theme_enqueue_styles' );
    ?>

    Der entsprechende Part im parent theme sieht so aus:

    wp_register_style('global-css', CSS_URI . '/global.min.css');
    
      wp_enqueue_style('global-css');
    
      wp_enqueue_style('theme', get_stylesheet_uri(), '');
    
      wp_register_style('responsive-css', CSS_URI . '/responsive.css');
    
      wp_enqueue_style('responsive-css');
    
      wp_enqueue_style('font-1', 'http://fonts.googleapis.com/css?family=Roboto:500,900,100,300,700,400', '');
    
      wp_enqueue_style('font-2', 'http://fonts.googleapis.com/css?family=Roboto+Condensed:700,300,400', '');

    Es funktioniert jetzt zwar alles wie es soll, aber ich habe Angst mir jetzt unnötig lange Ladezeiten aufgehalst zu haben. Was denkt ihr?

    Danke und Gruß!

Ansicht von 3 Antworten - 1 bis 3 (von insgesamt 3)
  • Moderator Bego Mario Garde

    (@pixolin)

    Hm, das ist so etwas schwer zu beurteilen, aber es macht auf mich den Eindruck, als würdest du erst alles rauswerfen, um es gleich im nächsten Moment wieder einzufügen?

    Der Grundgedanke bei Child Themes ist, das Parent Theme weitgehend zu übernehmen und nur in Details durch das später geladene Stylesheet des Child Themes zu überschreiben. Im Grunde reicht also folgendes, um ein Child Theme zu erstellen:

    //Datei: functions.php
    <?php
    add_action( 'wp_enqueue_scripts', 'theme_enqueue_styles' );
    function 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 )
        );
    }

    zusätzlich kannst du dann die style.css mit dem Theme-Header und deinen eigenen Style-Regeln anlegen:

    /*
     Theme Name:   Mein tolles Child Theme
     Description:  Das allerbeste Child Theme
     Author:  fsdk
     Template: verzeichnisparenttheme
     Version:  1.0.0
     License:  GNU General Public License v2 or later
     License URI:  http://www.gnu.org/licenses/gpl-2.0.html
    */
    
    /* ab hier deine eigenen CSS-Regeln */

    Thread-Starter fsdk

    (@fsdk)

    Hallo Bego,

    danke für deine schnelle Antwort! Leider wird mit deinem Vorschlag die style.css des childtheme zwar geladen, aber durch die style.css des parent wieder überschrieben. Das überprüfe ich mit der Inspektionsfunktion von Chrome.

    Woran kann das liegen?

    Moderator Bego Mario Garde

    (@pixolin)

    Kannst du dir das nochmal genau ansehen? Es sollte genau anders herum sein.

Ansicht von 3 Antworten - 1 bis 3 (von insgesamt 3)
  • Das Thema „Habe ich das child theme/funcitons.php richtig (und effizient) angelegt?“ ist für neue Antworten geschlossen.