Child Theme entwickeln

  • Hi Leute,
    ich möchte für mein erstes selbst erstelles Theme (noch in Arbeit) ein Child-Theme erstellen. Bis jetzt habe ich nur eine styles.css erstellt was super funktionert. Jetzt will ich im Childtheme eine weitere sidebar hinzufügen, also habe ich die funtions.php angepaßt, so daß es jetzt 3 anstatt ursprünglich 2 sidebars gibt. Das Problem in meinem Backend tauchen jetzt die Sidebars 1 und 2 doppelt auf. Wie kann ich das vermeiden?

    Grüße aus Ludwigsburg
    Jochen Kubik

    • Anzeige

    Hallo!

    Wenn du gerade an deiner Website arbeitest oder dein aktuelles Hosting überdenkst: Wir betreiben mit NetzLiving eine Hosting-Plattform, die speziell auf Performance, Sicherheit und einfache Verwaltung ausgelegt ist.

    • ✔️ Schnelle Ladezeiten (optimiert für WordPress & Co.)
    • ✔️ Deutsche Server & DSGVO-konform
    • ✔️ Persönlicher Support (kein 0815-Ticket-System)

    Mehr erfahren

  • Bei der Verwendung von Child Themes gibt es folgendes in Bezug auf die functions.php zu beachten, wenn das Child Theme aktiv ist:

    1. es wird zuerst die functions.php des Child Themes von WordPress geladen
    2. es wird anschliessend auch die functions.php des Basis Themes geladen.


    Wenn du also eine 1:1 Kopie der functions.php in das Childtheme kopiert hast und dann dort noch die 3. Sidebar ergänzt hast, wird zuviel Code ausgeführt.

    Im Child Theme solle man nur die zusätzlichen Sachen machen, die das Basistheme nicht schon mitbringt.

  • Hi codestyling,

    mir ist klar, daß hier zuviel code ausgeführt wird,
    leider weiß ich nicht, wie ich das verhindern kann!

    Kannst Du mir da weiterhelfen?

    Grüße aus Ludwigsburg
    Jochen Kubik

  • Sagen wir mal, ich baue ein Child Theme von Twenty Ten und möchte noch eine Sidebar zusätzlich haben. Dann sieht meine functions.php im Child Theme komplett so aus:

    PHP
    <?php     register_sidebar( array(
            'name' => __( 'CodeStyling\'s Widget Area', 'twentyten' ),
            'id' => 'codestyling-widget-area',
            'description' => __( 'My private widget area', 'twentyten' ),
            'before_widget' => '<li id="%1$s" class="codestyling-widget-container %2$s">',
            'after_widget' => '</li>',
            'before_title' => '<h3 class="widget-title">',
            'after_title' => '</h3>',
        ) ); ?>
  • Hi codestyling,
    Ok, jetzt wird's langsam heller!

    Ich habe aber noch Probleme wie ich die neue sidebar verlinke, über die ID oder über den namen?

    hier mein code:

    PHP
    if ( function_exists('register_sidebar') )
    register_sidebars(array(
            'name' => 'kopfbild',
            'id' => 'k1',
            'before_widget' => '<li id="%1$s" class="widget %2$s">',
            'after_widget' => '</li>',
            'before_title' => '<h3>',
            'after_title' => '</h3>',
    ));

    und hier das was in der header.php steht:

    PHP
    <?php     /* Widgetized sidebar, if you have the plugin installed. */
            if ( !function_exists('dynamic_sidebar') || !dynamic_sidebar(k1) ) : ?>
            <?php endif ?>

    Leider scheint hier noch etwas nicht zu stimmen :-(

    Grüße aus Ludwigsburg
    Jochen Kubik

  • Hi codestyling,

    leider funktioniert die ganze Sache immer noch nicht so richtig:
    erstmal mein code in der functions.php:

    PHP
    if ( function_exists('register_sidebars') )
    register_sidebars(1,array(
            'id' => 'k1',
            'name' => 'Kopf',
            'before_widget' => '<li id="%1$s" class="widget %2$s">',
            'after_widget' => '</li>',
            'before_title' => '<h3>',
            'after_title' => '</h3>',
    ));

    und im header.php:

    PHP
    <?php if (!function_exists('dynamic_sidebar') || !dynamic_sidebar( 'k1' ) ) : ?>
                <?php endif; // end kopfbild widget area ?>

    Das Problem, das Widget gibt jetzt kein Bild mehr aus, obwohl ich es schon aus der Sidebar k1 gelöscht und neu reingelegt habe.

    Auch die Sidebars aus dem Eltern Theme funktionieren jetzt nicht mehr,
    kann das daran liegen, daß ich "sidebar" und "sidebars" verwendet habe?

    Grüße aus Ludwigsburg
    Jochen Kubik

  • [COLOR=Black]Die Funktionen heißen: [/COLOR][COLOR=#000000][COLOR=#0000bb][COLOR=Black]dynamic_sidebar und [/COLOR][/COLOR][/COLOR][COLOR=#000000]register_sidebar[/COLOR][COLOR=#000000][COLOR=#0000bb][COLOR=Black] also ohne s am Ende und bekommt gesagt, welche sidebare es dort ausgeben soll. So gesehen kann dein Code nicht gehen, denn ich hab meinen Code ja auch ohne s hier geschrieben :wink:.[/COLOR]
    [/COLOR][/COLOR]

  • Schau dir am Besten Twenty Ten functions.php an und bau das entsprechend deinen Wünschen nach:


    Dann kannst du im Child Theme auch weitere einzelne Sidebars auf die gleiche Weise dazufügen.
    Ich bin davon ausgegangen, das du dein eigenes Basistheme und davon ein Childtheme erzeugt hast.

  • Hi codestyling,

    jetzt hat's geklappt, es war eine unheilvolle Mischung aus "register_sidebar" und register_sidebars :-(
    Ja, ich habe ein eigenes Theme und das Child dazu erstellt, bin aber noch blutiger Anfänger!

    Thanx nochmal!!!

    Grüße
    JK

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!