問題描述
通常在我的主題功能檔案中,我將要求其他檔案保持整潔。
require_once("foo.php");
現在正在做一個小孩主題,我想做同樣的事情。我新增了自定義管理選項,似乎不可能包含程式碼。我已經回應了路徑,以確保我正在呼叫正確的檔案,它正在呼叫正確的位置,但是該檔案中的內容似乎沒有執行。如果放置在子主題功能檔案中,程式碼執行正常。
最佳解決方案
兒童主題透過目錄名稱引用父主題,並且在正常安裝中,所有主題都在 wp-content/themes/中,所以我可以說透過相對路徑引用這些主題是很好的:
include '../parent-theme/some-file.php';
如果這樣讓你感到不舒服,我會在 WordPress 3.0.1 中觀察以下常數:二十世紀的題為 tt-child 的小題目:
TEMPLATEPATH /home/adam/public_html/wp3/wp-content/themes/twentyten
STYLESHEETPATH /home/adam/public_html/wp3/wp-content/themes/tt-child
所以你可以在你的孩子主題中做以下參考父主題目錄:
include TEMPLATEPATH . '/some-file.php';
次佳解決方案
在一個小孩主題中,正確的方法是
require_once( get_stylesheet_directory() . 'foo.php');
在父主題中,您仍然可以使用
require_once ( get_template_directory() . 'foo.php' );
get_template_directory()仍然在小孩主題中工作,不幸的是目標是父主題目錄。在你的情況下,它是有用的
第三種解決方案
嗨 @curtismchale:
不知道這是不是,但是你需要在 foo.php 周圍加上引號,就像這樣:
require_once('foo.php');
這是否解決您的問題?
第四種方案
你絕對不想硬編碼的 URL 。這樣做的正確方法是
require_once( get_stylesheet_directory(). '/my_included_file.php' );
檢視更多資訊在 WordPress Codex
現在,如果你的修改 header.php,其中包含一個 include,您將引用它如下:
require_once( get_stylesheet_directory() . '/../parenthteme/my_included_file.php' );
參考文獻
注:本文內容整合自 Google/Baidu/Bing 輔助翻譯的英文資料結果。如果您對結果不滿意,可以加入我們改善翻譯效果:薇曉朵技術論壇。