简短回答:
插件不修改现有文件,而是通过公开的API连接到WordPress插件可以修改数据库模式插件不必完全卸载插件在WordPress核心暴露的特定点钩住WordPress。
http://codex.wordpress.org/Plugin_API
例如,函数
get_option()
从数据库中读取站点选项。在这个函数中采取任何实际行动之前,WordPress会调用
apply_filters( \'pre_option_\' . $option, false )
. 有选择权
foobar
, 插件可以使用以下代码覆盖此选项的真值:
function override_foobar( $unused ) {
return \'My custom value.\';
}
add_filter( \'pre_option_foobar\', \'override_foobar\' ); // add_filter(hook, function)
另见
http://adambrown.info/p/wp_hooks/.
插件修改数据库
如果WordPress数据库用户仍然拥有该权限,插件可以修改数据库。一些更复杂的插件添加了自己的表。一个插件可能会修改核心表,希望他们能够负责任地这样做,并且如果插件被删除,不会破坏任何东西。
这必须逐个插件进行检查。
卸载插件deactivate_plugins()
函数调用操作do_action( \'deactivate_\' . trim( $plugin ) )
. 如果在停用插件时需要发生特定的事情,插件应该挂接到此操作。根据我的经验,很少有插件会进行大量的停用清理,即将其设置放在冷库中以防再次激活。