如何将父主题的unctions.php中使用的Required()重写到子主题

时间:2020-01-21 作者:Javed Akhtar

我已经为一个主题创建了一个子主题,除了函数中需要一些文件外,一切都很好。父主题的php,我想从子主题重写它。他们使用了get_template_directory_uri();而不是get_stylesheet_directory_uri();. 所以它并没有覆盖它。函数中使用的代码。php是:

require( get_template_directory() .\'/inc/custom-functions.php\' );
我无法更改父主题或从子主题中取消挂钩。使用子进程的最佳解决方案是什么,因为我不能同时调用这两个进程,从而导致致命错误。我已经检查了stackoverflow的一些答案,但它们的答案并不准确。

Child theme - Overriding 'require_once' in functions.php

这个答案建议使用样式表而不是模板,但我不能更改父主题。

1 个回复
最合适的回答,由SO网友:Tom J Nowell 整理而成

这是不可能的,require 是一种PHP语言构造,它不是WordPress函数,不能通过WordPress API进行筛选或重写

以下是您的选择:

如果要删除的功能是通过操作和筛选器实现的,则:

从该文件中取下您不想要的内容,然后添加新的钩子,尝试撤消它们所做的操作,否则,您只能选择:

修改父主题分叉父主题选择新的父主题向作者提交支持票证,以使其更改为支持操作和筛选器

相关推荐

Child-theme breaks site

所以,我有一个子主题,里面除了所需的CSS文件之外什么都没有。一旦我激活了这个儿童主题,我的整个网站就关闭了。最后我有两个问题:激活一个只有CSS的子主题怎么能破坏我的网站</我怎样才能回到我原来的主题</这些是网站给我的错误:Warning: require_once(/wp-content/themes/interio_child/admin/options-framework.php) [function.require-once]: 无法打开流:中没有此类文件或目录/wp-c