J'ai un thème et j'ai besoin de remplacer certaines parties spécifiques de son comportement spécifiquement sur le fichier functions.php
. Je sais que la meilleure pratique consiste à placer ceci dans le thème enfant en plaçant un functions.php
personnalisé. Maintenant, cela fait partie du fichier original:
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' );
Et je veux remplacer chaque add_image_size
en définissant crop
sur false sur mon thème enfant. J'ai essayé en copiant et collant la fonction sur le thème de l'enfant, mais je me suis retrouvé avec cette erreur:
Impossible de redéclarer mytheme_setup () (précédemment déclaré dans /themes/mytheme-child/functions.php:11) dans /themes/mytheme/functions.php à la ligne 88
Comment je peux faire ça?
Quand une fonction est accrochée, il est facile de changer cela dans un thème enfant. Ce que tu dois faire c'est
Supprimer la fonction de rappel d'origine
Copiez la fonction dans le thème de votre enfant et renommez-la.
Faites vos personnalisations au besoin
Rehook votre fonction de rappel
Vous pouvez essayer ce qui suit:
// 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' );