if ( ! function_exists

时间:2018-09-26 作者:mark-milton

我已添加if ( ! function_exists ( \'event_meta_box\' ) ) { “我的孩子”主题函数。php以及现有函数和我的更改。

加载站点时,我遇到以下错误致命错误:无法在/home/user/public\\html/folder/wp-content/themes/theme-child/functions.php:10中重新声明event\\u meta\\u box()(之前在/home/user/public\\html/folder/wp-content/themes/theme/include/functions中声明)新建。php在线3920

这是如何修复的?

1 个回复
SO网友:majick

儿童主题functions.php 实际上是先加载的(这是有意的和期望的行为)所以尽管function_exists 签入子主题,它将一事无成,因为父主题似乎没有这个包装器,并且是第二个加载的,因此会发生致命错误。

没有简单的方法可以覆盖父主题函数(如果它没有在默认情况下使其所有函数都可插入-我的函数可插入,但很少有!)有时父主题函数被挂接到一个动作,您可以从挂接中删除该函数(使用remove_action) 然后添加您自己的自定义函数(使用add_action). 其他时候(甚至很少)在现有的主题代码中有可用的过滤器。

除此之外,您还必须通过将相关的父主题模板复制到子主题,并对其进行修改,以更改对自定义主题调用的函数,或触发的挂钩,从而获得更大的创造性,因为子主题模板被用来代替父主题模板。但请记住,孩子和父母functions.php 已加载。

结束