Answers:
该函数将返回主题目录URL,因此您可以在其他函数中使用它:
get_bloginfo('template_directory');
另外,此功能将呼应主题目录网址到浏览器:
bloginfo('template_directory');
因此,主题images/headers
文件夹中图像的示例为:
<img src="<?php bloginfo('template_directory'); ?>/images/headers/image.jpg" />
get_template_directory_uri()
@EAMann说了什么,但要注意。对于常规方法,功能bloginfo()
和get_bloginfo()
工作方式以及如何传递参数'template_directory'
以获取(大多数)主题所需的值,Eric是正确的。
但是,有一个警告,并且该警告与更新的“ 儿童主题”有关。如果您使用的是子主题,那么'template_directory'
除非您实际尝试引用父主题目录中的图像,否则可能不是您想要的。相反,对于子主题,您可能希望通过stylesheet_directory
(我知道,我知道,名字并没有告诉您它们是什么,但是,嘿,这就是这样!)从Eric的回复中借用一些内容stylesheet_directory
看起来像这样(我简化了示例,因此它不会包装):
<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
域,但是任何人都可以通过编辑计算机的hosts文件和?来手动完成此操作。httpd.conf文件。
顺便说一句,如果您不熟悉“ 儿童主题”,还有两个其他的WordPress答案可能会有所帮助:
get_stylesheet_directory_uri()
。我应该使用普通ol' get_stylesheet_directory()
吗?
主题的整个结构基于两个选项- template
(保留父主题文件夹名称)和stylesheet
(保留子主题文件夹名称)。如果没有使用子主题,则它们是相同的。
为了具有过滤器的灵活性,而不是直接访问选项,请相应地添加get_template()
和get_stylesheet()
。
现在唯一缺少的是将它们与主题文件夹位置结合在一起。这是可以做到的get_theme_root_uri()
,再方便包裹在get_template_directory_uri()
和get_stylesheet_directory_uri()
。
[get_]bloginfo()
with template_directory
或stylesheet_directory
arguments仅包装了这些内容,没有理由像这样使用它。我要说的是,只有通过说目录(通常与本地路径有关)而返回URL才令人困惑。
总结:
get_template_directory_uri()
仅指代或父主题get_stylesheet_directory_uri()
来只或儿童主题