#1 楼
此函数将返回主题目录URL,以便您可以在其他函数中使用它:get_bloginfo('template_directory');
或者,此函数会将主题目录URL回显到浏览器:
bloginfo('template_directory');
因此主题
images/headers
文件夹中的图像的示例为:<img src="<?php bloginfo('template_directory'); ?>/images/headers/image.jpg" />
#2 楼
@EAMann说了什么,但要注意。对于常规方法以及功能bloginfo()
和get_bloginfo()
的工作方式,以及关于如何传递参数'template_directory'
以获得(大多数)主题所需的值,Eric是正确的。但是有一个警告,需要注意的是较新的儿童主题。如果您使用的是子主题,那么除非您实际尝试引用父主题目录中的图像,否则
'template_directory'
可能不是您想要的。相反,对于子主题,您可能想要通过stylesheet_directory
(我知道,我知道,名字没有告诉您它们是什么,但是,嘿,这就是这样!)使用stylesheet_directory
从Eric的回复中借来的内容看起来像这(我简化了示例,因此它不会包装):<img src="<?php bloginfo('stylesheet_directory'); ?>/images/header.jpg" />
为了说明这一点,我编写了一个快速的独立文件,您可以将您网站的根目录添加为
test.php
并运行以查看其输出。首先使用常规主题(例如TwentyTen)运行,然后使用子主题运行:<?php
/*
* test.php - Test the difference between Regular and Child Themes
*
*/
include "wp-load.php";
$bloginfo_params = array(
'admin_email',
'atom_url',
'charset',
'comments_atom_url',
'comments_rss2_url',
'description',
'home',
'html_type',
'language',
'name',
'pingback_url',
'rdf_url',
'rss2_url',
'rss_url',
'siteurl',
'stylesheet_directory',
'stylesheet_url',
'template_directory',
'template_url',
'text_direction',
'url',
'version',
'wpurl',
);
echo '<table border="1">';
foreach($bloginfo_params as $param) {
$info = get_bloginfo($param);
echo "<tr><th>{$param}:</th><td>{$info}</td></tr>";
}
echo '</table>';
如果您发现了一些问题,则可能会发现传递给您的内容还有很多
bloginfo()
和get_bloginfo()
;请研究下面的代码和屏幕截图以获取想法。 查看屏幕快照,您可以看到
stylesheet_directory
对于常规主题返回与'template_directory'
相同的东西,但是返回的值不同,并且可能是子主题所需的值。(来源:mikeschinkel.com)
为了清晰起见,
wp30.dev
是仅在我的本地计算机上运行的域。它当前是WordPress 3.0.1的一个实例,并且它在笔记本电脑上的
127.0.0.1
(与localhost
相同)上进行了配置,我使用它来测试即席示例像这样。
我在Mac OS X上使用VirtualHostX作为便利,帮助我设置了那些不可路由的私有
.dev
域,但是任何人都可以通过手动进行操作。编辑计算机的主机文件和
? httpd.conf文件。
顺便说一句,以防万一您不熟悉“儿童主题”,另外两个WordPress答案可能会有所帮助:
让二十一个主题的标题变矮吗?
自定义WordPress主题而不更改它?
评论
哇,好答案。我对现在正在研究的主题感到很懒,并且没有设置儿童主题,但这在将来会很有帮助。也祝贺该脚本。编码正确。谢谢!
– Michael Crenshaw
10年8月21日在13:32
嗨,不错的答案!我通常使用get_stylesheet_directory_uri()。我应该使用普通的get'stylesheet_directory()吗?
– djb
2012年1月18日上午10:59
#3 楼
主题的整个结构基于两个选项-template
(保存父主题文件夹名称)和stylesheet
(保存子主题文件夹名称)。如果没有使用子主题,则它们是相同的。为了具有过滤器的灵活性,而不是直接访问选项,因此有
get_template()
和get_stylesheet()
。现在是唯一的缺少的是将那些与主题文件夹位置结合在一起。可以使用
get_theme_root_uri()
完成此操作,然后再次方便地将其包装在get_template_directory_uri()
和get_stylesheet_directory_uri()
中。带有[get_]bloginfo()
或template_directory
参数的stylesheet_directory
只是将它们包装起来,没有理由像这样使用它。我要说的是,只有通过说目录(通常与本地路径有关),而是返回URL来混淆。摘要:
使用
get_template_directory_uri()
可以仅指代或父主题对仅指代或子主题使用
get_stylesheet_directory_uri()
#4 楼
我用这个(dirname(get_bloginfo('stylesheet_url')))
评论
没有解释为什么这比其他解决方案更好?
– fuxia♦
2012年11月5日,下午3:52
评论
注意:如果您当前正在使用子主题,而不是活动的子主题,这将为您提供父主题的路径。以下较长的答案将对此进行更详细的说明。
–詹森
16-10-19在12:40
您可以简单地使用get_template_directory_uri()
–贝
18年6月20日在5:33