在我父主題我有一個功能,而不初始聲明:WordPress的兒童主題:覆蓋功能
if (!function_exists(... etc...
我如何用我的子主題同名的函數代替它呢? 如果我將函數創建到我的functions.php中,它會給我一個錯誤,因爲有兩個函數具有相同的名稱。
非常感謝您的回答。
在我父主題我有一個功能,而不初始聲明:WordPress的兒童主題:覆蓋功能
if (!function_exists(... etc...
我如何用我的子主題同名的函數代替它呢? 如果我將函數創建到我的functions.php中,它會給我一個錯誤,因爲有兩個函數具有相同的名稱。
非常感謝您的回答。
子主題function.php文件被加載之前父主題功能文件,因此你不應該得到重新聲明子主題中的函數的致命錯誤。這就是爲什麼你的父母主題使用function_exists
檢查。
也許你是在鉤子(例如init)之後在子主題中聲明函數?
下面是關於這個食品文檔:http://codex.wordpress.org/Child_Themes#Referencing_.2F_Including_Files_in_Your_Child_Theme
這似乎是爲我工作:
function fileExistsInChildTheme($file_path){
$file_directory = get_template_directory();
if(file_exists($file_directory . "-child" . $file_path)){
return $file_directory .= "-child" . $file_path;
}
return $file_directory .= $file_path;
}
require (fileExistsInChildTheme('/includes/functions.php'));
require (fileExistsInChildTheme('/includes/theme-options.php'));
require (fileExistsInChildTheme('/includes/hooks.php'));
require (fileExistsInChildTheme('/includes/version.php'));
我認爲,如果你添加的功能相同的名字,那麼它從兒童主題功能拍攝則從父母那裏拿走。
例如,
兒童主題
if (! function_exists('function_name')) {
function function_name(){
echo 'This is child theme';
}
}
母題
if (! function_exists('function_name')) {
function function_name(){
echo 'This is parent theme';
}
}
@Avionicom你可以請檢查我的答案 –
http://stackoverflow.com/questions/4725194/php-override-existing-function – Robus