WordPress在插件升级时会运行安装/卸载功能吗?

时间:2021-09-20 作者:T Nguyen

在当前版本的插件中,我在安装时创建了一个页面,并在卸载时将其删除。在一个新的计划版本中,我已经进行了重构,不再需要那个页面了。当用户升级到新版本时,WordPress是否会在升级之前运行卸载功能,然后是否会在每次升级时运行安装,而不是仅在新安装时运行?

如果我在新版本中删除卸载功能(因为它不再需要了),旧版本的用户会得到一个没有代码的孤立页面吗?在这种情况下,我应该留下代码来永远删除页面吗?

我想了解WordPress插件升级生命周期,谢谢。

1 个回复
SO网友:Jacob Peattie

否,插件更新时不会运行激活、停用和卸载挂钩。

因此,当您的插件更新后,页面仍将存在(假设用户没有删除它),如果您的插件在卸载时不再执行此操作,则卸载时不会删除该页面。

如果您想在更新时执行某些操作,下面介绍了正确的方法here:

处理升级路径的正确方法是仅在需要时运行upgradeprocedure。理想情况下,您应该在插件的数据库选项中存储一个“版本”,然后在代码中存储一个版本。如果两者不匹配,则启动升级过程,然后将Database选项设置为与代码中的版本相同。

然后,您可以在升级过程中删除有问题的页面。

相关推荐

Running WP_Upgrader via Cron

我编写了在页面运行时更新核心的代码。当我通过管理挂钩使用代码时,一切都正常admin_init 但当我将其添加到cron函数或通过任何前端挂钩运行它时,它不起作用(致命错误)init 或template_redirect 等因此,我试图要求class-wp-upgrader.php 文件add_action(\'init\', \'kit_wp_auto_update\'); // doesn\'t work // add_action(\'admin_init\', \'kit_wp_auto_