我正在使用框架为wordpress开发主题。在安装框架之后,我在functions.php中创建了儿童主题并包含了我的框架中的文件。为什么TEMPLATEPATH返回到子目录的绝对路径?
在其他2个项目中工作正常,但在我的新项目中,我有一个错误。当我调用TEMPLATEPATH时,它返回到子目录的绝对路径,但它必须返回父主题的路径。
什么可能是错的?
P.S.框架使用TEMPLATEPATH包含他自己的文件,所以我需要了解如何解决这个问题。
我正在使用框架为wordpress开发主题。在安装框架之后,我在functions.php中创建了儿童主题并包含了我的框架中的文件。为什么TEMPLATEPATH返回到子目录的绝对路径?
在其他2个项目中工作正常,但在我的新项目中,我有一个错误。当我调用TEMPLATEPATH时,它返回到子目录的绝对路径,但它必须返回父主题的路径。
什么可能是错的?
P.S.框架使用TEMPLATEPATH包含他自己的文件,所以我需要了解如何解决这个问题。
我找到了我的问题的解决方案。
我得到了错误的父主题路径,因为表中的数据库“wp_options”字段“模板”中是一个子主题名称。当我将该字段的值更改为父主题名称时,TEMPLATEPATH start会返回父主题的路径。
你应该尝试使用get_template_directory_uri()
获取父主题目录,如下所示:
echo get_template_directory_uri()/img/icon.png
如果你想要得到的东西你的孩子的主题目录,你可以使用get_stylesheet_directory_uri()
。
更多信息:
编辑:刚才注意到了问题的意见麦克纳布的答复,给这个家伙一些upvotes为好。 :)
这发生在我身上,因为我先创建了我的子主题,并在创建父主题style.css文件之前激活了它。
所有你需要做的解决这个问题是激活任何其他主题,然后重新激活你的孩子的主题。这将更正wp_options表中的“模板”值。
你应该在儿童主题上使用STYLESHEETPATH - 这是一些有用的信息http://wordpress.stackexchange.com/questions/21086/wordpress-include-templatepath-或 – McNab 2013-03-23 11:47:06
嗨,@McNab。 感谢您快速回复。 我可以在我的functions.php儿童主题中使用STYLESHEETPATH,但我不能将TAMPLATEPATH更改为框架文件中的STYLESHEETPATH(框架作者不允许这样做)。所以我需要找到我如何解决TAMPLATEPATH问题。 – Vov4eg 2013-03-23 12:42:45
框架开发人员必须包含或记录一种方法来执行此操作,否则框架无用。请看get_template_directory_uri()http://codex.wordpress.org/Function_Reference/get_template_directory_uri或get_stylesheet_directory_uri();也许吧http://codex.wordpress.org/Function_Reference/get_stylesheet_directory_uri。 – McNab 2013-03-23 14:12:51