Wordpress - How to get the path to the current theme?
I think you have to be a little careful because it depends on what you are trying to do.
If you are using a child theme get_template_directory();
will still go to the parent theme. However get_stylesheet_directory();
will go to the current theme, child or parent. Also, both these functions return absolute server paths.
If you wanted a fully formed URI, for links or images, you should use get_template_directory_uri();
or get_stylesheet_directory_uri();
using the correct one for the reasons stated.
Summary
get_stylesheet_directory()
: file path to current Theme directoryget_stylesheet_directory_uri()
: url path to current Theme directoryget_template_directory()
: file path to parent Theme directoryget_template_directory_uri()
: url path to parent Theme directory
get_stylesheet_directory_uri
is what you want. it returns the URL of the current theme. get_stylesheet_directory
will return the file path on the server.
For example:
<img src="<?php echo get_stylesheet_directory_uri(); ?>/assets/image.png" />
If you need the parent theme, get_template_directory
and get_template_directory_uri
are the equivalents.
If there is no parent theme then both will return the same value.
Further reading:
get_stylesheet_directory
- absolute folder path of current theme
- e.g.
/var/www/yoursite/wp-content/themes/child_theme
get_template_directory
- absolute folder path of parent theme
- e.g.
/var/www/yoursite/wp-content/themes/parent_theme
get_stylesheet_directory_uri
- full URL of current theme
- e.g.
https://example.com/wp-content/themes/child_theme
get_template_directory_uri
- full URL of parent theme
- e.g.
https://example.com/wp-content/themes/parent_theme