WordPress finds updates, installs them, reports on them, and leaves you a hook at every step.
Each part stands on its own. Section numbers (§2.4, §5.10) hold across all seven, so a cross-reference read in Part 3 still lands on the right section when you opened Part 2 first.
The seven parts
| # | Part | What it covers |
|---|---|---|
| 1 | Discovery: how WordPress detects available updates | Update transients, scheduled and admin-triggered checks, API endpoints, third-party Update URI sources, checksums, must-use plugins and drop-ins |
| 2 | Application: how WordPress installs updates | WP_Upgrader and its subclasses, the database upgrade step, skins, dependency resolution, rollback, locks, maintenance mode, package signatures, staging cleanup |
| 3 | Automatic background updates | WP_Automatic_Updater, global disable conditions, per-item eligibility, core branch policy, opt-ins, translation chaining |
| 4 | Notifications and feedback | Admin notices and menu counts, Site Health tests, background emails, the automatic_updates_complete payload, Recovery Mode |
| 5 | Entry points and configuration | The Updates screen, AJAX, WP-CLI, XML-RPC, REST, filesystem methods, wp-config.php constants, multisite, proxies, downgrades |
| 6 | Hook and filter reference | Every discovery, download, install, automatic-update, policy, notification, cache, and filesystem hook, with parameters |
| 7 | File and class reference | The core files involved and what each one does, plus the key classes |
Where to start
| I want to… | Read |
|---|---|
| Find out why no update is offered | Part 1, §1.2 and §1.6 |
| Change something during download or install | Part 6, §6.3 and §6.4 |
| Stop automatic updates for one plugin or theme | Part 3, §3.3 and §3.8 |
| Send update results somewhere else | Part 4, §4.7 |
| Look up a hook signature | Part 6 |
| Find which core file does a job | Part 7 |
| Diagnose a failed upgrade | Part 2, then §4.8 for fatal errors |
Requirements
Everything here describes WordPress core behavior, not plugin behavior. Anything tagged with a release, such as WordPress 6.6+, is gated on that release: check it against the code of the version you run.
About the interface labels
Interface labels, settings, and messages are quoted exactly as they appear in WordPress. Update check frequencies (Daily, Weekly, and so on) come from core, so they follow your site’s language.

