相关代码为wp_update_plugins(). 您可以看到,它将其状态存储在一个名为“update\\u plugins”的站点瞬态中:
set_site_transient( \'update_plugins\', $new_option );
以及
we can hook that:
pre\\u set\\u site\\u transient\\u update\\u plugins-在set\\u site\\u transient()的开头调用
set_site_transient( \'update_plugins\', ... )
作为更新的一部分调用两次:一次更新上次检查的时间戳,一次使用新插件更新列表;因此,第一次调用总是有一个更改的值,而不必更改更新的插件列表。删除插件时也可以调用它,以删除任何已删除插件的更新标志,但在这种情况下只能调用一次
我很欣赏挂接站点临时更新似乎有点像黑客,但没有其他明显的地方可以挂接更新检查是否完成。我看到付费插件也将其作为生成其他地方托管的插件所需更新的一种方式。
当然,您也不需要挂接实际的更新,但可以安排一个cron作业来检查get_site_transient( \'update_plugins\' )
(和update_themes
和update_core
) 生成通知电子邮件。