WordPress子主题目录获取:如何引用子主题资源目录?
正确引用WordPress子主题目录下的资源
嘿,这个问题我太熟悉了!你当前用的get_template_directory_uri()函数,本质上是专门指向父主题目录的,这就是为什么系统会跑到父主题里找/assets文件夹,完全不是你的问题~
要正确引用子主题目录下的资源,你需要换用下面这两个函数之一:
1. 直接指向当前激活的主题目录(推荐)
使用get_stylesheet_directory_uri()函数,它会自动指向当前正在使用的主题目录——也就是你的子主题目录。如果你的子主题目录结构是子主题根目录/gfx/Logo.svg,那代码应该改成:
<img src="<?php echo get_stylesheet_directory_uri();?>/gfx/Logo.svg" />
2. 带自动 fallback 的灵活引用
如果你想实现「优先用子主题的资源,子主题没有的话再用父主题的」这种效果,可以用get_theme_file_uri()函数。它会先检查子主题中是否存在指定路径的文件,不存在则自动去父主题查找:
<img src="<?php echo get_theme_file_uri('gfx/Logo.svg');?>" />
简单总结一下:
get_template_directory_uri()→ 永远指向父主题get_stylesheet_directory_uri()→ 永远指向当前激活的主题(子/父)get_theme_file_uri()→ 先子主题,后父主题的 fallback 机制
内容的提问来源于stack exchange,提问作者Wasteland
相关产品推荐
相关产品推荐

