我正在使用框架爲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