如何为 wordpress 创建子插件
How to create Child Plugin for wordpress
实际上我已经更改了 WordPress Store Locator 中的一些代码。我希望它在插件更新时保留。所以我想为此创建一个子插件。关于如何管理它有什么想法吗?
按照 WordPress 标准,它被称为插件插件。
如果插件提供了更新该功能的任何操作,那么您可以将其与您的插件(子插件)一起使用。
这里发一个link供参考。
https://developer.wordpress.org/reference/functions/add_action/
这因插件而异,有时甚至是不可能的,有时插件有文档可以轻松扩展它们(例如 WooCommerce 和 Gravity Forms)。其中一些创建 Action Hooks with do_action()
that let you extend the functionality easily. A common example is updating a post after a Gravity Form is submitted with their gform_after_submission
挂钩。
实际上,这取决于你想做什么,以及插件如何实现你想改变的功能。如果他们添加带有 Closure or Anonymous Function, it will be harder to modify said text, and you may have to look at something strange like doing a run-time find and replace using Output Buffering, typically on the template_redirect
钩子的文本。
如果你想删除某个插件所做的事情,你通常可以使用 remove_action
解除它。根据插件的实例化方式,这可能有点棘手,有时它很简单:
remove_action( 'some_hook', 'function_to_remove' );
其他时候更复杂,例如:
global $plugin_class_var;
remove_action( 'some_hook', array($plugin_class_var, 'function_to_remove') );
这些是扩展(甚至'shrinking'?)插件功能的基础知识,但并非总是可以适当地做到。不幸的是,您问题的狭义答案超出了我们可以从 Whosebug 提供的范围。
从这里开始,您需要弄清楚确切地您想用插件做什么,并深入研究插件的文件以查看是否有合适的挂钩或函数您可以使用。如果你仍然卡住了,你需要 post 一个新问题(不要更新这个问题)你 确切 想要的结果和你已经尝试过的任何东西,以及随之而来的相关代码。 "I want to change a plugin without editing core files" 不够具体。 "I want to replace an icon with a custom icon in this plugin, here's what I've tried" 足够具体,可以回答。
祝你好运!
我自己经历了很多变化,以至于我无法覆盖这些操作。
我创建了这个工具,它允许您创建像子主题一样的子插件。您可以对插件进行更新,并且仍然可以更新它而不会丢失您的更改。
我将其张贴在这里是因为它与遇到此问题的下一个人相关,并希望对它有用。
实际上我已经更改了 WordPress Store Locator 中的一些代码。我希望它在插件更新时保留。所以我想为此创建一个子插件。关于如何管理它有什么想法吗?
按照 WordPress 标准,它被称为插件插件。
如果插件提供了更新该功能的任何操作,那么您可以将其与您的插件(子插件)一起使用。
这里发一个link供参考。 https://developer.wordpress.org/reference/functions/add_action/
这因插件而异,有时甚至是不可能的,有时插件有文档可以轻松扩展它们(例如 WooCommerce 和 Gravity Forms)。其中一些创建 Action Hooks with do_action()
that let you extend the functionality easily. A common example is updating a post after a Gravity Form is submitted with their gform_after_submission
挂钩。
实际上,这取决于你想做什么,以及插件如何实现你想改变的功能。如果他们添加带有 Closure or Anonymous Function, it will be harder to modify said text, and you may have to look at something strange like doing a run-time find and replace using Output Buffering, typically on the template_redirect
钩子的文本。
如果你想删除某个插件所做的事情,你通常可以使用 remove_action
解除它。根据插件的实例化方式,这可能有点棘手,有时它很简单:
remove_action( 'some_hook', 'function_to_remove' );
其他时候更复杂,例如:
global $plugin_class_var;
remove_action( 'some_hook', array($plugin_class_var, 'function_to_remove') );
这些是扩展(甚至'shrinking'?)插件功能的基础知识,但并非总是可以适当地做到。不幸的是,您问题的狭义答案超出了我们可以从 Whosebug 提供的范围。
从这里开始,您需要弄清楚确切地您想用插件做什么,并深入研究插件的文件以查看是否有合适的挂钩或函数您可以使用。如果你仍然卡住了,你需要 post 一个新问题(不要更新这个问题)你 确切 想要的结果和你已经尝试过的任何东西,以及随之而来的相关代码。 "I want to change a plugin without editing core files" 不够具体。 "I want to replace an icon with a custom icon in this plugin, here's what I've tried" 足够具体,可以回答。
祝你好运!
我自己经历了很多变化,以至于我无法覆盖这些操作。
我创建了这个工具,它允许您创建像子主题一样的子插件。您可以对插件进行更新,并且仍然可以更新它而不会丢失您的更改。
我将其张贴在这里是因为它与遇到此问题的下一个人相关,并希望对它有用。