No, you cannot. There is no such thing as child plugins. You need to use hooks/filters.
子插件
在WordPress中,我们可以通过创建子主题轻松扩展父主题。我们如何从父插件创建子插件?
Extend是a。。慷慨的条件。子主题允许您覆盖父主题的模板,并加载它们的functions.php
, 但这不是一种任意的文件替换机制。仔细看,您将在中看到该代码functions.php
并通过加载include
或require
不能通过子主题系统重写。这些文件与插件的情况相同。
简单地说,there is no such thing as a child plugin. 这个概念在技术层面上毫无意义。
如果没有钩子呢
我搜索了很多内容,人们建议使用操作和挂钩,但如果插件没有提供挂钩和操作怎么办?
然后您有3个选项:
分叉插件并添加它们,让作者添加它们并更新插件,接受插件中没有挂钩和过滤器的事实,扩展LearnDash,实际上我想扩展LearnDash插件。
那么您应该联系LearnDash支持,WPSE不支持第三方插件。
我想在我的子插件中扩展它的功能。
您可以创建第二个插件,通过使用挂钩和过滤器来修改LearnDash的行为,但它不是子插件,而是一个插件。
记住,插件只是PHP代码文件,它们不是沙盒或分离的。当代码被加载时,它就被加载了。这意味着所有的东西都同时在一起,没有分离,一旦加载,从哪里加载是不相关的。
这就是为什么如果您手动从functions.php
, 或者为什么大多数主题functions.php
如果将其移动到插件,则加载。
处理更新,这样如果插件中有任何更新,它就不会与我们的自定义更改冲突。但目前我不知道如何扩展它?
然后您的更改将被覆盖。就像我拿着你的;汤姆回忆录v1“;用v2替换它,当你打开新书时,你的笔记和涂鸦就会消失。
总之,因此:
您可以派生插件,确保对其进行重命名,但您必须手动集成将来的所有更新。巨大的日常维护成本(或者如果您愿意留下,请留下巨大的持续安全漏洞)
请LearnDash添加过滤器和挂钩(他们可能会说不)- 如果learn dash不能或不愿意,那么tough. 您已经走到了尽头,请使用竞争对手或替代品。没有父插件或子插件是不可无限扩展的,有些插件在不同方面优于其他插件