开发WordPress主题:调用CSS用get_stylesheet_uri()还是get_template_directory_uri()?
搞懂get_stylesheet_uri()和get_template_directory_uri()的正确用法
嘿,这个问题问得特别到位,很多刚上手WordPress主题开发的朋友都会搞混这两个函数,我给你拆解清楚,再结合你的情况给出最佳方案~
先明确两个函数的核心区别
1. get_stylesheet_uri()
- 这个函数的核心是指向当前激活主题的根目录下的
style.css文件。 - 划重点:如果以后你要基于这个主题做子主题,它会自动优先指向子主题的
style.css,完美适配子主题的工作流,这是WordPress官方推荐的主样式表加载方式。 - 适用场景:专门用来加载主题的主样式表(就是你放在根目录的那个
style.css,记得这个文件开头要写主题头部注释,不然WordPress识别不了你的主题哦)。
2. get_template_directory_uri()
- 这个函数指向的是父主题的根目录(如果是独立开发的主题,没有父主题,那就是当前主题的根目录)。
- 不管有没有子主题,它只会返回父主题的资源路径,不会自动切换到子主题。
- 适用场景:用来加载主题里的额外自定义资源,比如你自己创建的自定义CSS文件、JS脚本、图片素材等等。
结合你的情况的最佳实践
你现在是从零开发独立主题,目录里有主style.css和自定义CSS文件,那正确的调用方式应该是这样的:
在functions.php里用wp_enqueue_style()函数(这是WordPress推荐的资源加载方式,比直接写link标签规范得多)来分别加载:
function my_theme_enqueue_styles() { // 加载主样式表,用get_stylesheet_uri()是标准操作 wp_enqueue_style( 'main-theme-style', get_stylesheet_uri() ); // 加载自定义样式表,用get_template_directory_uri()拼接路径 wp_enqueue_style( 'custom-theme-style', get_template_directory_uri() . '/你的自定义CSS文件名.css', array( 'main-theme-style' ), '1.0.0' ); } // 挂载到wp_enqueue_scripts动作上,确保在前端正确加载 add_action( 'wp_enqueue_scripts', 'my_theme_enqueue_styles' );
小贴士:代码里的array( 'main-theme-style' )是设置依赖,让自定义样式表在主样式表之后加载,这样自定义样式的优先级才会更高,能正确覆盖主样式里的规则哦~
内容的提问来源于stack exchange,提问作者Craig
相关产品推荐
相关产品推荐

