it-swarm.com.de

Wie überschreibe ich functions.php im Child Theme?

Ich habe ein Thema, und ich muss einige bestimmte | Verhaltensteile davon in der functions.php-Datei überschreiben. Ich weiß, dass die beste Vorgehensweise hier darin besteht, dies bei einem untergeordneten Thema durch Platzieren eines benutzerdefinierten functions.php zu tun. Dies ist nun ein Teil der Originaldatei:

function mytheme_setup() {
    ...
    add_image_size( 'mytheme-l-thumbs' , 750 , 423 , true);
    add_image_size( 'mytheme-m-thumbs' , 555 , 313 , true);
    add_image_size( 'mytheme-s-thumbs' , 450 , 254 , true);
    add_image_size( 'mytheme-square-thumbs' , 750 , 750 , true);
    add_image_size( 'mytheme-nocrop-thumbs' , 750 , 1500 , false);

}

add_action( 'after_setup_theme', 'mytheme_setup' );

Und ich möchte jeden add_image_size überschreiben, indem ich crop für mein untergeordnetes Thema auf false setze. Ich habe versucht, die Funktion für das untergeordnete Thema zu kopieren und einzufügen, aber am Ende ist folgender Fehler aufgetreten:

Kann mytheme_setup () (zuvor in /themes/mytheme-child/functions.php:11 deklariert) in /themes/mytheme/functions.php in Zeile 88 nicht erneut deklarieren

Wie kann ich das machen?

3
ReynierPM

Wenn eine Funktion verknüpft ist, ist es einfach, dies in einem untergeordneten Thema zu ändern. Was Sie tun müssen, ist

  • Entfernen Sie die ursprüngliche Rückruffunktion

  • Kopieren Sie die Funktion in Ihr untergeordnetes Thema und benennen Sie es um.

  • Nehmen Sie Ihre Anpassungen nach Bedarf vor

  • Hängen Sie Ihre Rückruffunktion erneut auf

Sie können Folgendes versuchen:

// Remove the callback function from the hook
remove_action( 'after_setup_theme', 'mytheme_setup' );

// Copy the function, rename and do what you need
function my_new_callback()
{
    // Modify what you need
}

// Rehook your custom callback
add_action( 'after_setup_theme', 'my_new_callback' );
3
Pieter Goosen