2015-02-08 157 views
0

我想要创建一个子主题覆盖在我父主题的一些功能WordPress的儿童主题include_once

我有这个在父母的functions.php主题

include_once('admin/functions-extended/fn-typography.php'); //User Typography 

这是我的尝试:

include_once(get_stylesheet_directory().'admin/functions-extended/fn-typography.php'); 

但不起作用

详情

我试图在这个文件中,但在儿童主题添加自定义字体 父FN-typography.php代码

function mgm_get_google_fonts() { 
// Google Font Defaults 
$google_faces = array(
    "Abel" => "Abel", 
    "Abril Fatface" => "Abril Fatface", 
    "Aclonica" => "Aclonica", 
    "Acme" => "Acme", 
    "Actor" => "Actor", 
    "Adamina" => "Adamina", 
    "Advent Pro" => "Advent Pro", 
    "Aguafina Script" => "Aguafina Script", 
    "Aladin" => "Aladin", 
    "Aldrich" => "Aldrich", 
    "Alegreya" => "Alegreya", 
    "Alegreya SC" => "Alegreya SC", 
    "Alex Brush" => "Alex Brush", 
    "Alfa Slab One" => "Alfa Slab One", 
    "Alice" => "Alice", 
    "Alike" => "Alike", 
    "Alike Angular" => "Alike Angular", 
    "Allan" => "Allan", 
      ); 
return $google_faces; 
    } 

我想删除该字体,并添加另一种字体

+0

你试图使用FN-typography.php或覆盖呢? – bobdye 2015-02-08 20:48:47

+0

@bobdye即时通讯试图超越它 – 2015-02-08 21:23:06

+0

你有完全相同的目录结构中的同名文件,你的孩子主题?另外,父函数.php是否允许?如果你只是再次包含一个函数,你会得到一个“重复函数名称”错误。 – bobdye 2015-02-08 21:54:19

回答

0

在你展示的代码,mgm_get_google_fonts()不实际加载的字体,但显然提供了一些其他的功能加载字体列表。

父功能注释把它描述为提供默认值,因此意味着有一些方法来覆盖它们。通过查看父函数.php,你可能会想出如何做到这一点。

例如,如果父主题,让你超越此功能,它可能会这样说:

if (!function_exists('mgm_get_google_fonts') { 
    ...the function definition you have above... 
} 

这个测试,看看你是否已经在你的子主题定义的名称相同的功能并使用你的,如果你有。

如果父主题并没有这样做,他们将需要寻找其中mgm_get_google_fonts被调用,并追查如何重写。

0

不管发生什么在您的父级functions.php中也将由您的子主题完成,因此您不必单独包含该文件,因为它将在激活您的子主题时包含在内。

如果你想改变你的主题所包含的文件中的行为,你不能重写槽get_template_part(比如库PHP文件),那么你应该寻找主题构建器为你实现的技术,如果有的话。大部分是通过钩子。