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中的插件执行代码所说的。要特别回答您的问题,

  1. 他们不应该,但是没有什么可以阻止他们修改核心文件。
  2. 允许他们以WordPress本身可以以任何方式与数据库完全接口。
  3. WordPress不能确保插件卸载不会破坏整个安装。如果插件作者设置了卸载函数以删除所有内容,它将做到这一点。

因此,这留下了一个问题,如果插件作者背叛了您的信任并对您的网站做些恶意,该怎么办?定期备份WP-Content目录以及整个数据库是确保您网站发生某些事情(例如数据丢失,黑客攻击,不良插件等)的最佳方法。 。

直接答案:否

插件可以使用PHP代码做任何您可以做的事情。

许可以下: CC-BY-SA归因
scroll top