Wordpress - get_template_directory_uri pointing to parent theme not child theme

get_template_directory_uri() will always return the URI of the current parent theme.

To get the child theme URI instead, you need to use get_stylesheet_directory_uri().

You can find these in the documentation, along with a list of other useful functions for getting various theme directory locations.


If you prefer to use a constant, then TEMPLATEPATH is akin to calling get_template_directory() (i.e. the parent theme), and STYLESHEETPATH is akin to calling get_stylesheet_directory() (i.e. the child theme).

These constants are set by WordPress core in wp-includes/default-constants.php and basically look like this:

define('TEMPLATEPATH', get_template_directory());
...
define('STYLESHEETPATH', get_stylesheet_directory());

If there is no child theme, then both the 'template' and 'stylesheet' functions will return the parent theme location.

Note the difference between these functions and the functions ending in _uri - these will return the absolute server path (eg. /home/example/public_html/wp-content/yourtheme), whereas the _uri functions will return the public address (aka URL) - eg. http://example.com/wp-content/themes/yourtheme.