plugin_dir_url( __FILE__ )
。我应该使用什么来获取当前主题的目录?
#1 楼
我认为您必须谨慎一点,因为这取决于您要尝试执行的操作。如果使用子主题,则
get_template_directory();
仍将转到父主题。但是,get_stylesheet_directory();
将转到当前主题,孩子还是父母。同样,这两个函数都返回绝对服务器路径。 如果您想要一个完整的URI,则对于链接或图像,出于上述原因,应使用正确的
get_template_directory_uri();
或get_stylesheet_directory_uri();
。 摘要
get_stylesheet_directory()
:当前主题目录的文件路径get_stylesheet_directory_uri()
:当前主题目录的URL路径get_template_directory()
:父主题目录的文件路径get_template_directory_uri()
:父主题目录的URL路径#2 楼
get_stylesheet_directory_uri
是您想要的。它返回当前主题的URL。 get_stylesheet_directory
将返回服务器上的文件路径。例如:
<img src="<?php echo get_stylesheet_directory_uri(); ?>/assets/image.png" />
如果需要父主题,
get_template_directory
和get_template_directory_uri
是等效的。如果没有父主题,则两者将返回相同的值。
进一步阅读:
get_stylesheet_directory
当前主题的绝对文件夹路径
例如
/var/www/yoursite/wp-content/themes/child_theme
get_template_directory
父主题的绝对文件夹路径,例如
/var/www/yoursite/wp-content/themes/parent_theme
get_stylesheet_directory_uri
当前主题的完整URL
例如
https://example.com/wp-content/themes/child_theme
get_template_directory_uri
父主题的完整URL
例如
https://example.com/wp-content/themes/parent_theme
评论
get_stylesheet_directory()是正确的答案。如果正在使用子主题,则get_template_directory()将指向父主题。
–卢卡斯·布斯塔曼特(Lucas Bustamante)
20年7月11日,在2:20
我相应地调整了答案
– Tom J Nowell♦
20年8月25日在14:02
评论
+1。始终使用样式表文件路径/ URL引用当前主题,并保留模板文件路径/ URL引用父主题。
–芯片Bennett
2012年4月5日21:00
不幸的是,get_template_directory()返回整个服务器路径,例如/ var / www / the / path / of / actual / wp-content / themes / mytheme,如果WP通过FTP连接,则这不是您要使用$ wp_filesystem做的事情。
– NoBugs
2014年9月11日在3:41
@NoBugs-我也正在获取整个服务器路径,但是使用get_stylesheet_directory_uri()而不是get_stylesheet_directory()解决了该问题。
– TheLibzter
15年2月4日在22:19
谢谢!我发现的大多数答案都可以通过使用get_stylesheet_directory()来解决,但后来我留在服务器的根目录中。 get_stylesheet_directory_uri()是我祈祷的答案! 🙏
– sigmapi13
20年8月7日在17:44