问题描述
在版本 4.1 的/wp-includes/update.php
绕线 674,有这样一行:
add_action('wp_version_check', 'wp_version_check');
我搜索了所有的 WordPress 核心文件为 do_action('wp_version_check')
看看前面提到的动作可能被触发。但是,我没有找到任何东西。我甚至把自己的动作添加到活动中,看看它是否被拾起,但是没有效果。
功能在做什么?
最佳解决方案
该功能将检查您的 WP 版本是否有可能的更新。看起来数据库中有一个暂时的名为’update_core’,所以它存储在 $ wpdb-> 选项表中作为’_site_transient_update_core’ 。该瞬态的值是一个具有信息的序列化对象,我不是 wp_version_check 的专家,但它使用该瞬态来跟踪何时下次检查新版本。它检查像您的 Wordpress 版本,php 版本,mysql 版本,语言,如果您的 MU,如果有多少个博客,用户基础,并将其发送到 api.wordpress.org 的信息。我猜猜 Wordpress 核心开发人员使用这些信息来决定什么对社区很重要 (所以回答你的问题似乎做了一些事情)WP 更新是重要的,大多数人不会检查更新由他们自己。看起来这样做在管理端,所以它不会滞后于你的前端页面加载,它也不会立即检查失败后检查,以防止挂起您的网站,如果 api.wordpress.org 服务器没有回应。
在未来,我知道 WP 计划将所有更新’Automagically’,使得用电脑知识很少的用户将不会处于劣势,因为他们选择不使用 WP 更新。我相信别人可能对这个问题有更多的了解。我以为这个问题很有趣,所以我打开了我的 IDE,并且偷看了一下。
Edit
Thx 到以前的评论和这个答案,我想想弄清楚发生了什么。
-
wp-includes/update.php
用add_action('wp_version_check', 'wp_version_check');
设置动作 -
如果/当 cron 触发时,
wp-includes/cron.php
将运行wp_cron()
,而wp_cron()
又将运行在同一文件中定义的spawn_cron()
。 -
spawn_cron()
对/wp-cron.php
进行了 AJAX 调用,它将使用wp_version_check
事件调用do_action_ref_array()
,并最终触发wp_version_check()
函数。
参考文献
注:本文内容整合自 Google/Baidu/Bing 辅助翻译的英文资料结果。如果您对结果不满意,可以加入我们改善翻译效果:薇晓朵技术论坛。