Redeclare a function in a child theme

I want to redeclare a function that I inherited from the parent theme.

When I do it in functions.php, I get a fatal error that redeclaration is not possible.

I did a workaround: creating a modified function name and copying all the template files, index.php etc. into the child theme’s directory and rewriting the function calls. So now the new function is called.

This works but ignores any updates that the parent theme would have.

Is there a better solution to this?

2 s
2

Redeclaring a function in a child theme only works when the parent themes’ function is wrapped in a

 if( !function_exists( 'function_name' )):

condition. Then you can simply just copy the complete function to the child theme and do whatever modifications you need to do.

If the parent themes’ functions aren’t wrapped in that if conditional statement, and if no filters or hooks are supplied in the function, it will be best to copy the function to your child theme, rename that function, do your modifications and then update your template files accordingly to reflect the new function.

Leave a Comment