問題描述

通常在我的主題功能文件中,我將要求其他文件保持整潔。

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 輔助翻譯的英文資料結果。如果您對結果不滿意,可以加入我們改善翻譯效果:薇曉朵技術論壇。