埃曼说了些什么,并提出了警告。Eric对一般方法和功能的理解是正确的bloginfo()
和get_bloginfo()
工作和关于如何传递参数\'template_directory\'
获得(大多数)主题所需的价值。
然而,有一个警告caveat 较新的是Child Themes. 如果你使用的是儿童主题,那么\'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
) 在我的笔记本电脑上,我用它来测试像这样的特殊例子。我曾经VirtualHostX 为了方便在Mac OS X上设置那些私有的不可路由.dev
但任何人都可以通过编辑计算机的主机文件和?httpd。conf文件。
顺便说一下,如果你不熟悉Child Themes WordPress的另外两个答案可能会有所帮助: