WP cron、管理员和更新问题

时间:2020-09-11 作者:unfinishedCode

我正在构建一个cron,它可以进行备份、更新插件、更新核心、在发生更新时向我发送电子邮件,或者在没有更新时删除备份。cron已经安排在一个周末的晚上,让我有机会浏览这个网站,看看是否有什么东西坏了。

我在一个专用于开发人员的自定义管理页面上构建并测试了cron中运行的钩子/函数的代码。睡前我突然想到,cron中的条件不一样,它不会有一个登录的管理员,也不会加载与管理页面相同的文件。

我错了吗,wp cron在运行任务之前需要管理文件吗?

用户是否需要登录插件或core才能更新?

1 个回复
SO网友:Tom J Nowell

用户是否需要登录插件或core才能更新?

不,cron作业是cron作业,cron作业中没有当前用户或活动用户,因此也没有登录用户。所以不,他们没有。Cron作业不会根据用户请求运行。

例如,如果你打电话wp_get_current_user 在cron作业中,返回的用户具有ID0, 因为没有当前用户。

即使您已登录,这是一个与cron作业完全不同的请求,也没有任何效果。

我错了吗,wp cron在运行任务之前需要管理文件吗?

如果您的cron作业使用的函数仅在WP Admin上下文中可用,则是。否则没有。我不知道哪个适用于您,因为您没有共享任何代码。

但是,您可以通过运行cron作业并检查结果来轻松测试这种情况。如果您需要管理文件,但尚未包含管理文件,则PHP错误日志将显示致命错误。

However.

wp db export backup.sql
wp core update
wp plugin update --all
您甚至可以设置一个系统cron作业来触发WordPress的cron作业系统,从而提供可靠性,并加快站点的运行速度。

wp cron event run --due-now
如果您仍然想使用完全定制的cron作业,可以通过以下方式触发它:

wp cron event run yourcronhook

相关推荐

在不同的域上拥有wp-admin

我有一个wordpress wp管理员在另一个域上运行。换句话说WP_SITEURL = \'https//admin.example.com\' 和WP_HOME = \'https://www.example.com\' 最近我有个坏主意,把wordpress更新到最新版本。一切似乎都很好,但当我意识到不可能添加新帖子或更新现有帖子后。例如,当我添加一篇新帖子(/wp admin/post new.php)时,管理员向www发出的获取请求很少:https://www.example.com/wp-js