Pet*_*ter 14 php plugins wordpress-plugin
我很好奇插件是如何工作的,我只是知道我们不使用插件来改变代码,而是如何在不更改代码的情况下完成工作?编码新项目时编码员应该考虑什么才能有插件?非常感谢你:D
mar*_*rio 19
如何实现插件系统有很多变化.Wordpress使用一种非常常见的方案,通常称为"钩子".我不知道确切的实现,但它基本上是这样的:
// plugin.php script registers its own callback function
register_plugin("hook_type", "plugin_function_123");
function plugin_function_123($params) { ... }
Run Code Online (Sandbox Code Playgroud)
凡hook_type往往是一个动作名字什么的.当主应用程序运行通过特定点(或者例如需要处理一些数据)时,它会调用所有已注册的回调函数:
$output = call_plugins("hook_type", $param1, $param2);
Run Code Online (Sandbox Code Playgroud)
这通常在幕后实现为一个简单的循环:
foreach ($registered_plugins[$action] as $func) {
$func($param1, $param2, ...); // or call_user_func_
}
Run Code Online (Sandbox Code Playgroud)
现在它取决于钩子/动作类型,存在哪些参数,以及是否需要任何结果文本.参数传递也有差异(例如,一些回调需要&$ var引用).而一些插件系统依赖于对象(如果不存在多种不同的动作类型或者要处理更复杂的结构).