如何创建子WordPress插件

时间:2011-03-19 作者:Gowri

我喜欢创建子插件。。

说明:-

我有一个名为X的父插件。这将独立工作(与其他现有插件一样)。

现在,我决定为插件X添加一些额外的功能(可以将其视为升级)。因此,我想通过另一个插件Y来创建额外的功能,它将依赖于(并继承自)X。
这个插件Y与插件X不兼容。

我该怎么做?

3 个回复
最合适的回答,由SO网友:Bainternet 整理而成

最好的方法是让你的X插件有自己的操作和过滤器挂钩,这样新插件(在你的情况下是Y)就可以与插件X的功能和数据交互。定义自己的挂钩相当简单。

法典中的行动挂钩:

动作是WordPress核心在执行期间或特定事件发生时在特定点启动的挂钩。您的插件可以使用动作API指定在这些点执行一个或多个PHP函数。

新动作挂钩示例:

Function whatever(){
   //regular stuff you do normally 
  do_action(\'Name-Of-Your-Action-hook\', $args1,$args2)
  //regular stuff you do normally
}
现在,我们可以与该函数交互,并使用“Name-Of-Your\\u-hook”钩子使用其参数($args1,$args2

add_action(\'Name-Of-Your-Action-hook\',\'hook_function_callback\');
法典中的过滤器挂钩:

过滤器是WordPress启动的挂钩,用于在将文本添加到数据库或发送到浏览器屏幕之前修改各种类型的文本。您的插件可以指定在这些时候使用过滤器API执行一个或多个PHP函数来修改特定类型的文本。

新过滤器挂钩示例:

Function whatever(){
   //regular stuff you do normally 
   $output = apply_filters(\'Name-Of-Your-Filter-hook\', $output,$args1,$args2)
  //regular stuff you do normally
}
现在,我们可以使用“过滤器挂钩的名称”挂钩与该函数交互,过滤$output use及其参数($args1,$args2)

add_filter(\'Name-Of-Your_hook\',\'hook_function_callback\');
一个很好的例子是contact form 7

联系人表单7-活动监视器加载项联系人表单7动态文本扩展项联系人表单7日历联系人表单7文本区域字数邮件中的联系人表单7自定义字段联系人表单7到数据库扩展项以及更多的插件,所有(大多数)都是基于其挂钩扩展联系人表单7功能的插件。

SO网友:Ashfame

在父插件中创建一些挂钩,子插件可以将其自身的功能附加到这些挂钩上。同时将子插件包装到if(function_exists(\'parent-plugin-function\'))class_exists 如果它是一个类。

SO网友:Thomas Depole

我只是经历了自己,我有太多的改变,以至于我不能忽略这些动作。

我创建了这个工具,可以让你创建一个像子主题一样的子插件。您可以对插件进行更新,并且仍然可以在不丢失更改的情况下对其进行更新。

我在这里发布这篇文章是因为它关系到下一个遇到这个问题的人,并希望对他们有用。

https://github.com/ThomasDepole/wordpress-child-plugin-tool

结束

相关推荐

How do you debug plugins?

我对插件创作还很陌生,调试也很困难。我用了很多echo,它又脏又丑。我确信有更好的方法可以做到这一点,也许是一个带有调试器的IDE,我可以在其中运行整个站点,包括插件?