我正在使用具有儿童主题的Starkers(starkers-child)。
我需要编辑functions.php来声明一个菜单,所以我复制了functions.php,JS文件夹和外部文件夹(它们都在函数文件中的某处声明)
但是我仍有一个错误:
Cannot redeclare starkers_script_enqueuer()
(previously declared in C:\wamp\www\redlaw\wp-content\themes\starkers-child\functions.php:65) in
C:\wamp\www\redlaw\wp-content\themes\starkers-master\functions.php
我认为这是由这条线引起的:
function starkers_script_enqueuer() {
我可以看到为什么因为它已经调用了master中的函数,所以它不能再在子代中调用它。
但是,如果我从主人那里删除这一行,那么是否会破坏保持一个干净的主人并拥有一个儿童主题的目的?
完整的functions.php在这里(未经编辑,因为它出现在主题材中) http://jsfiddle.net/8KGcK/
答案 0 :(得分:2)
原谅我,我没有足够的代表来评论。
除父主题外,还会加载子主题的functions.php。因此,您不需要实际复制和粘贴代码。其他人所说的用if(function_exists(function))
包装它是可选的,但这是一种最佳实践,因为它不易出错。
反正!
这来自食典委:
与style.css不同,子主题的functions.php不会覆盖父对象的对应部分。相反,它除了父代的functions.php之外还被加载。 (具体来说,它是在父文件之前加载的。)