插件卸载是否总是将WordPress放回原始状态?
-
16-10-2019 - |
题
WordPress部署实例中的插件寿命是什么?
即:
- 插件是否修改了现有文件,还是仅在WordPress中使用定义的扩展点?
- 是否允许插件修改数据库架构(例如添加新列)?
- WordPress如何确保插件卸载始终将WP留在原始状态下? (可以?)
解决方案
简短答案:
- 插件不会修改现有文件,而是通过裸露的API挂在WordPress中。
- 插件可以修改数据库架构。
- 插件不必干净地卸载。
插件钩
插件在WordPress Core暴露的特定点上钩到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 ) )
. 。如果插件停用时需要发生特定的事情,则应将插件挂钩。根据我的经验,很少有插件可以进行大量停用清理,即。将其设置放在冷藏中,以防再次激活。
其他提示
WordPress中的插件执行代码所说的。要特别回答您的问题,
- 他们不应该,但是没有什么可以阻止他们修改核心文件。
- 允许他们以WordPress本身可以以任何方式与数据库完全接口。
- WordPress不能确保插件卸载不会破坏整个安装。如果插件作者设置了卸载函数以删除所有内容,它将做到这一点。
因此,这留下了一个问题,如果插件作者背叛了您的信任并对您的网站做些恶意,该怎么办?定期备份WP-Content目录以及整个数据库是确保您网站发生某些事情(例如数据丢失,黑客攻击,不良插件等)的最佳方法。 。
直接答案:否
插件可以使用PHP代码做任何您可以做的事情。