Child theme – Overriding ‘require_once’ in functions.php

The question:

I am attempting to modify a wordpress theme with a child theme. My parent theme has the following function in its functions.php:

require_once(get_template_directory() . "/includes/theme-styles.php");

I would like to change this to include my own stylesheet: something like:

require_once(get_template_directory() . "../child-theme/includes/theme-styles.php");

I can include this function in my child theme’s functions.php, but
because the child theme’s functions.php is loaded first, I see no way to override/prevent the parent theme’s require_once() from being called. Is there any way to do this, or a possible workaround?
Thanks

The Solutions:

Below are the methods you can try. The first solution is probably the best. Try others if the first one doesn’t work. Senior developers aren’t just copying/pasting – they read the methods carefully & apply them wisely to each case.

Method 1

You can use get_stylesheet_directory() to refer to your child theme, then you can point to your file.

require_once( get_stylesheet_directory() . '/includes/theme-styles.php' );

It will load your file and replace the parent theme file.


All methods was sourced from stackoverflow.com or stackexchange.com, is licensed under cc by-sa 2.5, cc by-sa 3.0 and cc by-sa 4.0

Leave a Comment