在版本4.1中/wp-includes/update.php
674号线附近有一条线:
add_action(\'wp_version_check\', \'wp_version_check\');
我在所有wordpress核心文件中搜索了
do_action(\'wp_version_check\')
查看上述操作可能在何处被触发。但是,我什么也没找到。我甚至在活动中加入了我自己的行动,看看它是否得到了重视,但没有任何效果。
函数在做什么?
最合适的回答,由SO网友:OnethingSimple 整理而成
该函数检查您的WP版本是否有可能更新。数据库中似乎有一个名为“update\\u core”的瞬态,因此它存储在$wpdb->options表中,名为“\\u site\\u transient\\u update\\u core”。该瞬态的值是一个具有信息的序列化对象,我不是wp\\u version\\u检查方面的专家,但它使用该瞬态跟踪下一次检查新版本的时间。它检查您的Wordpress版本、php版本、mysql版本、语言,如果您的MU是,如果是,您有多少博客,用户群,并将这些信息发送到api。wordpress。组织。我猜Wordpress的核心开发人员也会利用这些信息来决定什么对社区来说是重要的(所以要回答你的问题,它似乎可以做一些事情)WP更新很重要,大多数人不会自己检查更新。它看起来像是在管理端完成所有这些操作,因此它不会延迟前端页面的加载,也不会在检查失败后立即进行检查,以防止api出现问题时挂断网站。wordpress。组织服务器没有响应。
我知道,在未来,WP计划“自动”进行所有更新,这样几乎没有计算机知识的用户不会因为选择不使用WP更新而处于劣势。我相信其他人可能对这个问题有更多的了解。我觉得这个问题很有趣,所以打开IDE,四处看了看。
编辑前面的评论和这个答案,我想我已经弄清楚了到底发生了什么。
wp-includes/update.php
将操作设置为add_action(\'wp_version_check\', \'wp_version_check\');
如果/当cron启动时,wp-includes/cron.php
将运行wp_cron()
然后会运行spawn_cron()
在同一文件中定义spawn_cron()
执行AJAX调用/wp-cron.php
将调用do_action_ref_array()
使用wp_version_check
事件并最终激发wp_version_check()
功能