WordPress build repository browser

Timeline



10/23/2026: Today

01:53 Changeset [63833] by peterwilsoncc
  • trunk/wp-includes/class-wp-theme-json.php
  • trunk/wp-includes/version.php

Themes: Add label support to theme.json schema.

Adds the label as a supported element within the theme.json schema to allow theme developers/editors to modify the styles as required.

Developed in โ€‹https://github.com/WordPress/wordpress-develop/pull/13105.
Merges PHP component of โ€‹https://github.com/WordPress/gutenberg/pull/81160 to WordPress-Develop.

Fixes #65899.
Props sarthaknagoshe2002, wildworks, onemaggie, im3dabasia1.

Built from โ€‹https://develop.svn.wordpress.org/trunk@64683

10/22/2026: Yesterday

22:48 Changeset [63832] by westonruter
  • trunk/wp-includes/formatting.php
  • trunk/wp-includes/version.php

Formatting: Document sanitize_key() as accepting mixed.

Since a non-scalar key was made to yield an empty string in r52292 and non-string scalars were again coerced to a string in r52370, sanitize_key() handles values of any type, and its tests cover this. Most of its callers pass raw request data or REST parameters, which are untyped, so documenting $key as a string caused PHPStan to report an error at nearly every call site.

The sanitize_key filter is updated to match, as it receives the original key, and its sanitized key is now typed as a lowercase string so that the result of apply_filters() agrees with the function's return type. The cast to string before strtolower() makes the existing coercion explicit without changing behavior. Tests are added for additional non-string types and for the arguments passed to the filter.

This resolves 50 PHPStan errors at rule level 10.

Developed in โ€‹https://github.com/WordPress/wordpress-develop/pull/14759.
Follow-up to r13718, r52292, r52370.

See #54160, #65817.

Built from โ€‹https://develop.svn.wordpress.org/trunk@64682

20:30 Changeset [63831] by SergeyBiryukov
  • trunk/wp-includes/version.php
  • trunk/wp-includes/widgets.php

Widgets: Avoid sidebar name collision in dynamic_sidebar().

This ensures that dynamic_sidebar() displays the correct sidebar when it has the same ID as the sanitized name of another sidebar registered earlier.

An exact sidebar ID match is now prioritized over a sanitized name match, which may be less accurate.

Developed in โ€‹https://github.com/WordPress/wordpress-develop/pull/12166.

Follow-up to r5474.

Props sainathpoojary, wildworks, alexvorn2, markoheijnen, dilip2615, mosescursor, im3dabasia1, SergeyBiryukov.
Fixes #22116.
Built from โ€‹https://develop.svn.wordpress.org/trunk@64681

11:12 Changeset [63830] by jorgefilipecosta
  • trunk/wp-includes/abilities/class-wp-abilities-content.php
  • trunk/wp-includes/version.php

Abilities API: Replace the author_slug filter of core/content-query with an author object.

The core/content-query ability filtered posts by author through a where.author_slug string, while each post returns its author as an author object with id, name, and slug. The REST API posts collection filters by author ID, which the ability did not take.
Replace the filter with a where.author object that takes the id or the slug the author field returns, so a result's author can be given back as a filter.

Developed in โ€‹https://github.com/WordPress/wordpress-develop/pull/14673.

Follow-up to [64388].

Props jorgefilipecosta, gziolo.
See #66268.
Built from โ€‹https://develop.svn.wordpress.org/trunk@64680

09:25 Changeset [63829] by audrasjb
  • trunk/wp-content/themes/ipsum/screenshot.jpg
  • trunk/wp-includes/version.php

Bundled Themes: Add missing screenshot to Ipsum theme.

Follow-up to [64677], [64678].

Props ravipatel.
See #66352.

Built from โ€‹https://develop.svn.wordpress.org/trunk@64679

06:42 Changeset [63828] by audrasjb
  • trunk/wp-content/themes/ipsum/assets/fonts
  • trunk/wp-content/themes/ipsum/assets/fonts/archivo
  • trunk/wp-content/themes/ipsum/assets/fonts/archivo-condensed
  • trunk/wp-content/themes/ipsum/assets/fonts/archivo-condensed/archivo-condensed-var-italic.woff2
  • trunk/wp-content/themes/ipsum/assets/fonts/archivo-condensed/archivo-condensed-var-normal.woff2
  • trunk/wp-content/themes/ipsum/assets/fonts/archivo/archivo-var-italic.woff2
  • trunk/wp-content/themes/ipsum/assets/fonts/archivo/archivo-var-normal.woff2
  • trunk/wp-content/themes/ipsum/assets/fonts/besley
  • trunk/wp-content/themes/ipsum/assets/fonts/besley/besley-var-italic.woff2
  • trunk/wp-content/themes/ipsum/assets/fonts/besley/besley-var-normal.woff2
  • trunk/wp-content/themes/ipsum/assets/fonts/inter
  • trunk/wp-content/themes/ipsum/assets/fonts/inter/inter-var-italic.woff2
  • trunk/wp-content/themes/ipsum/assets/fonts/inter/inter-var-normal.woff2
  • trunk/wp-content/themes/ipsum/assets/fonts/jetbrains-mono
  • trunk/wp-content/themes/ipsum/assets/fonts/jetbrains-mono/jetbrains-mono-var-italic.woff2
  • trunk/wp-content/themes/ipsum/assets/fonts/jetbrains-mono/jetbrains-mono-var-normal.woff2
  • trunk/wp-content/themes/ipsum/assets/fonts/manrope
  • trunk/wp-content/themes/ipsum/assets/fonts/manrope/manrope-var-normal.woff2
  • trunk/wp-content/themes/ipsum/assets/fonts/stix-two-text
  • trunk/wp-content/themes/ipsum/assets/fonts/stix-two-text/stix-two-text-var-italic.woff2
  • trunk/wp-content/themes/ipsum/assets/fonts/stix-two-text/stix-two-text-var-normal.woff2
  • trunk/wp-content/themes/ipsum/assets/images
  • trunk/wp-content/themes/ipsum/assets/images/ipsum-avatar-cora.webp
  • trunk/wp-content/themes/ipsum/assets/images/ipsum-avatar-iris.webp
  • trunk/wp-content/themes/ipsum/assets/images/ipsum-capital.webp
  • trunk/wp-content/themes/ipsum/assets/images/ipsum-cover-essays.webp
  • trunk/wp-content/themes/ipsum/assets/images/ipsum-cover-pictures.webp
  • trunk/wp-content/themes/ipsum/assets/images/ipsum-cover-sounds.webp
  • trunk/wp-content/themes/ipsum/assets/images/ipsum-desk-fan.webp
  • trunk/wp-content/themes/ipsum/assets/images/ipsum-facade.webp
  • trunk/wp-content/themes/ipsum/assets/images/ipsum-lead-letter.webp
  • trunk/wp-content/themes/ipsum/assets/images/ipsum-metal-table.webp
  • trunk/wp-content/themes/ipsum/assets/images/ipsum-monobloc-back.webp
  • trunk/wp-content/themes/ipsum/assets/images/ipsum-monobloc-front.webp
  • trunk/wp-content/themes/ipsum/assets/images/ipsum-monobloc.webp
  • trunk/wp-content/themes/ipsum/assets/images/ipsum-pendant-lamp.webp
  • trunk/wp-content/themes/ipsum/assets/images/ipsum-polygons.webp
  • trunk/wp-content/themes/ipsum/assets/images/ipsum-portrait-editorial.webp
  • trunk/wp-content/themes/ipsum/assets/images/ipsum-portrait-tall.webp
  • trunk/wp-content/themes/ipsum/assets/images/ipsum-sculpture.webp
  • trunk/wp-content/themes/ipsum/assets/images/ipsum-staircase.webp
  • trunk/wp-content/themes/ipsum/assets/images/ipsum-studio-closeup.webp
  • trunk/wp-includes/version.php

Bundled Themes: Add missing assets to Ipsum theme.

This changeset adds missing fonts and images to Ipsum.

Follow-up to [64677].

Props westonruter.
See #66352.

Built from โ€‹https://develop.svn.wordpress.org/trunk@64678

03:17 Changeset [63827] by peterwilsoncc
  • trunk/wp-admin/includes/update-core.php
  • trunk/wp-content/themes/ipsum
  • trunk/wp-content/themes/ipsum/assets
  • trunk/wp-content/themes/ipsum/assets/css
  • trunk/wp-content/themes/ipsum/assets/css/editor-style.css
  • trunk/wp-content/themes/ipsum/functions.php
  • trunk/wp-content/themes/ipsum/parts
  • trunk/wp-content/themes/ipsum/parts/footer-wide.html
  • trunk/wp-content/themes/ipsum/parts/footer.html
  • trunk/wp-content/themes/ipsum/parts/header-collapsed.html
  • trunk/wp-content/themes/ipsum/parts/header-sticky.html
  • trunk/wp-content/themes/ipsum/parts/header.html
  • trunk/wp-content/themes/ipsum/parts/navigation-overlay.html
  • trunk/wp-content/themes/ipsum/parts/search-bar.html
  • trunk/wp-content/themes/ipsum/parts/sidebar.html
  • trunk/wp-content/themes/ipsum/patterns
  • trunk/wp-content/themes/ipsum/patterns/about-row.php
  • trunk/wp-content/themes/ipsum/patterns/archive-columns.php
  • trunk/wp-content/themes/ipsum/patterns/archive-compact.php
  • trunk/wp-content/themes/ipsum/patterns/archive-full.php
  • trunk/wp-content/themes/ipsum/patterns/archive-lead.php
  • trunk/wp-content/themes/ipsum/patterns/archive-minimal.php
  • trunk/wp-content/themes/ipsum/patterns/archive-photographic.php
  • trunk/wp-content/themes/ipsum/patterns/archive-simple.php
  • trunk/wp-content/themes/ipsum/patterns/archive-standard.php
  • trunk/wp-content/themes/ipsum/patterns/contact-say-hi.php
  • trunk/wp-content/themes/ipsum/patterns/cta-membership.php
  • trunk/wp-content/themes/ipsum/patterns/cta-search.php
  • trunk/wp-content/themes/ipsum/patterns/events-list.php
  • trunk/wp-content/themes/ipsum/patterns/footer-centered.php
  • trunk/wp-content/themes/ipsum/patterns/footer-social.php
  • trunk/wp-content/themes/ipsum/patterns/footer-subscribe.php
  • trunk/wp-content/themes/ipsum/patterns/footer-wide.php
  • trunk/wp-content/themes/ipsum/patterns/footer.php
  • trunk/wp-content/themes/ipsum/patterns/format-audio.php
  • trunk/wp-content/themes/ipsum/patterns/format-link.php
  • trunk/wp-content/themes/ipsum/patterns/gallery-grid-full.php
  • trunk/wp-content/themes/ipsum/patterns/gallery-grid-wide.php
  • trunk/wp-content/themes/ipsum/patterns/gallery-grid.php
  • trunk/wp-content/themes/ipsum/patterns/gallery-offset-full.php
  • trunk/wp-content/themes/ipsum/patterns/gallery-offset.php
  • trunk/wp-content/themes/ipsum/patterns/header-collapsed.php
  • trunk/wp-content/themes/ipsum/patterns/header-default.php
  • trunk/wp-content/themes/ipsum/patterns/header-sticky.php
  • trunk/wp-content/themes/ipsum/patterns/header-vertical.php
  • trunk/wp-content/themes/ipsum/patterns/hero-colophon.php
  • trunk/wp-content/themes/ipsum/patterns/hero-epigraph.php
  • trunk/wp-content/themes/ipsum/patterns/hidden-404.php
  • trunk/wp-content/themes/ipsum/patterns/hidden-archive-sidebar.php
  • trunk/wp-content/themes/ipsum/patterns/hidden-archive.php
  • trunk/wp-content/themes/ipsum/patterns/hidden-comments.php
  • trunk/wp-content/themes/ipsum/patterns/hidden-index-sidebar.php
  • trunk/wp-content/themes/ipsum/patterns/hidden-index.php
  • trunk/wp-content/themes/ipsum/patterns/hidden-keep-reading.php
  • trunk/wp-content/themes/ipsum/patterns/hidden-page-no-title.php
  • trunk/wp-content/themes/ipsum/patterns/hidden-page-sidebar.php
  • trunk/wp-content/themes/ipsum/patterns/hidden-page.php
  • trunk/wp-content/themes/ipsum/patterns/hidden-search-bar.php
  • trunk/wp-content/themes/ipsum/patterns/hidden-search.php
  • trunk/wp-content/themes/ipsum/patterns/hidden-sidebar.php
  • trunk/wp-content/themes/ipsum/patterns/hidden-single-sidebar.php
  • trunk/wp-content/themes/ipsum/patterns/hidden-single.php
  • trunk/wp-content/themes/ipsum/patterns/kind-words.php
  • trunk/wp-content/themes/ipsum/patterns/navigation-overlay.php
  • trunk/wp-content/themes/ipsum/patterns/overlay-contents.php
  • trunk/wp-content/themes/ipsum/patterns/overlay-profile.php
  • trunk/wp-content/themes/ipsum/patterns/page-bio.php
  • trunk/wp-content/themes/ipsum/patterns/page-blog-home.php
  • trunk/wp-content/themes/ipsum/patterns/page-soon.php
  • trunk/wp-content/themes/ipsum/patterns/text-alternating.php
  • trunk/wp-content/themes/ipsum/patterns/text-faqs.php
  • trunk/wp-content/themes/ipsum/patterns/text-statement-wide.php
  • trunk/wp-content/themes/ipsum/patterns/text-statement.php
  • trunk/wp-content/themes/ipsum/readme.txt
  • trunk/wp-content/themes/ipsum/style.css
  • trunk/wp-content/themes/ipsum/styles
  • trunk/wp-content/themes/ipsum/styles/blocks
  • trunk/wp-content/themes/ipsum/styles/blocks/crop-contents.json
  • trunk/wp-content/themes/ipsum/styles/blocks/display.json
  • trunk/wp-content/themes/ipsum/styles/blocks/quote-mark-on-color.json
  • trunk/wp-content/themes/ipsum/styles/blocks/quote-mark.json
  • trunk/wp-content/themes/ipsum/styles/colors
  • trunk/wp-content/themes/ipsum/styles/colors/01-blue-hour.json
  • trunk/wp-content/themes/ipsum/styles/colors/02-sunrise.json
  • trunk/wp-content/themes/ipsum/styles/colors/03-morning.json
  • trunk/wp-content/themes/ipsum/styles/colors/04-high-noon.json
  • trunk/wp-content/themes/ipsum/styles/colors/05-golden-hour.json
  • trunk/wp-content/themes/ipsum/styles/colors/06-evening.json
  • trunk/wp-content/themes/ipsum/styles/colors/07-after-hours.json
  • trunk/wp-content/themes/ipsum/styles/typography
  • trunk/wp-content/themes/ipsum/styles/typography/archivo-condensed.json
  • trunk/wp-content/themes/ipsum/styles/typography/archivo.json
  • trunk/wp-content/themes/ipsum/styles/typography/besley.json
  • trunk/wp-content/themes/ipsum/styles/typography/jetbrains-mono.json
  • trunk/wp-content/themes/ipsum/styles/typography/stix-two-text.json
  • trunk/wp-content/themes/ipsum/templates
  • trunk/wp-content/themes/ipsum/templates/404.html
  • trunk/wp-content/themes/ipsum/templates/archive-sidebar.html
  • trunk/wp-content/themes/ipsum/templates/archive.html
  • trunk/wp-content/themes/ipsum/templates/index-sidebar.html
  • trunk/wp-content/themes/ipsum/templates/index.html
  • trunk/wp-content/themes/ipsum/templates/page-no-title.html
  • trunk/wp-content/themes/ipsum/templates/page-sidebar.html
  • trunk/wp-content/themes/ipsum/templates/page.html
  • trunk/wp-content/themes/ipsum/templates/search.html
  • trunk/wp-content/themes/ipsum/templates/single-sidebar.html
  • trunk/wp-content/themes/ipsum/templates/single.html
  • trunk/wp-content/themes/ipsum/theme.json
  • trunk/wp-includes/class-wp-theme.php
  • trunk/wp-includes/default-constants.php
  • trunk/wp-includes/version.php

Bundled Themes: Ipsum dolor sit amet, consectetur adipiscing elit.

Me est ipsa dis strictus possim non fusius et eaque vel ottomanicum te quarta, fridericus il mus labore et rutrum veritatis iniuratum est veritatis luminare in eros iste. Ex 7.2 ea nemo opponat ac iaculantur iniuriis lacus claram lius uantum id quo polona odio subiectum quo omnis te li. Eos quo quam nemo fastus partem quo egestas v iudico ille, lius sint ruinae, ea rem nam iustitiam nemo d nobilitas solatium est rerum inscio civilatcm recentem. Et'y me pede ac me filiis ad quo quis. Ab'me eget renovo pressa odit noviciam iste gaudere, indigne, rem merentur ullo alias eum dicit me eum cum unde y poenam ut sed porta eum rem il conserrare contumeliis. Ea v netus urgebat mi quo quam est per dignus ut, tot'y cum odit mus ruinae nunc est indicant te y arcui sed amet mandata sint nec dignus unde custodiae assum et vero fretjuentia eius quos nulla quod, nobile usus y illo statum florem.per wisi eros modestius sed AssuMenda ille falcitenentem non li scripto et est iure dictabat unde ab m essentiam vero. Eget'w ti.

Props onemaggie, juanfra, poena, iamarinoh, shailu25, areziaal, josephscott, ddewan, noruzzaman, williampatton, jeffpaul, kafleg, maneshtimilsina, sakshamsharma5, soean, moonjellydigital, sheulyshila, yashjawale, maxinacube, mukesh27, nilambar, huzaifaalmesbah, mukeshpanchal27, westonruter.
See #66352.

Built from โ€‹https://develop.svn.wordpress.org/trunk@64677

00:57 Changeset [63826] by ramonopoly
  • trunk/wp-includes/block-supports/custom-css.php
  • trunk/wp-includes/version.php

Editor: Generate custom CSS for blocks rendered by their parent block

This commit generates per-block custom, "Additional CSS" for blocks that a parent block parses and renders itself, such as the links in a navigation menu.

Previously, the frontend did not render generate CSS for these blocks, the major case being Navigation Link blocks.

Developed in: โ€‹https://github.com/WordPress/wordpress-develop/pull/14538

Props mikachan, mrleemon, scruffian.

Fixes #66345.

Built from โ€‹https://develop.svn.wordpress.org/trunk@64676

10/21/2026:

20:40 Changeset [63825] by SergeyBiryukov
  • trunk/wp-includes/version.php

Tests: Use the null coalescing operators in the test suite.

Replaces isset() and array_key_exists() ternaries that return the tested value or a fallback of null or '' with the null coalescing operator (??), and self-referencing $x = $x ?? $y assignments with the null coalescing assignment operator (??=).

Why this is safe

  • ?? and isset() test the same condition, so the fallback is used in exactly the same cases.
  • array_key_exists() and ?? only differ for a key that exists with a null value. Every converted array_key_exists() site falls back to null, so both forms return null in that case as well.
  • ??= requires PHP 7.4, which is already the minimum supported version.
  • No behavior change; this is test-only code.

Developed in โ€‹https://github.com/WordPress/wordpress-develop/pull/14616.

Follow-up to r63609, r63633.

Props Soean, huzaifaalmesbah.
See #65819.
Built from โ€‹https://develop.svn.wordpress.org/trunk@64675

17:57 Changeset [63824] by whyisjake
  • trunk/wp-includes/secrets/class-wp-secrets-libsodium-provider.php
  • trunk/wp-includes/secrets/interface-wp-secrets-provider.php
  • trunk/wp-includes/version.php

Security: Keep the previous secret version when a value is saved unchanged.

Saving a secret's current value again demoted it to the previous slot. Settings forms do this on every submit, so a rotation in progress lost the previous value it depends on.

WP_Secrets_Libsodium_Provider::set() now treats an unchanged write as a no-op: nothing is stored and wp_secret_changed does not fire. The exception is a write that raises needs_rotation, such as wp_import_option_as_secret() on an option holding the current value. That write is recorded and keeps the previous version.

WP_Secrets_Provider::set() now documents that an unchanged write must not discard the previous version, and WP_Secrets_Provider_Conformance tests it, so the rule applies to third-party providers too.

Follow-up to [r64337].

Props ravipatel, ericmann, whyisjake.
Fixes #66353. See #66187.

Built from โ€‹https://develop.svn.wordpress.org/trunk@64674

06:14 Changeset [63823] by westonruter
  • trunk/wp-admin/plugins.php
  • trunk/wp-includes/html-api/class-wp-html-processor.php
  • trunk/wp-includes/rest-api/endpoints/class-wp-rest-users-controller.php
  • trunk/wp-includes/version.php

Code Quality: Remove dead code and document bookmark exceptions.

Several step_*() methods in the HTML Processor can throw an Exception via insert_virtual_node() when bookmarks run out. Documenting this with @throws shows PHPStan that the generic catch in step() is reachable, so its catch.neverThrown ignore is removed. The existing identical.alwaysFalse ignore now covers that catch as well, since PHPStan cannot see $last_error being set by a call that throws.

Dead code is also removed from wp-admin/plugins.php, along with a redundant check in WP_REST_Users_Controller::check_reassign(), whose documented types are corrected.

Developed in โ€‹https://github.com/WordPress/wordpress-develop/pull/13073.
Follow-up to r39426, r63023, r64294.

Props dpantazis, westonruter.
See #65817.

Built from โ€‹https://develop.svn.wordpress.org/trunk@64673

04:39 Changeset [63822] by westonruter
  • trunk/wp-admin/press-this.php
  • trunk/wp-includes/default-constants.php
  • trunk/wp-includes/version.php

Build/Test Tools: Add types for dynamic constants in PHPStan.

PHPStan treated many install-dependent constants as fixed values. Those missing from dynamicConstantNames took their placeholder value from the PHPStan bootstrap, and listed ones without a type took the type of their only visible definition. For WP_DEBUG_LOG that definition was false, so the is_string() checks for a log file path in wp_debug_mode() and WP_Debug_Data were reported as impossible.

Every install-dependent constant now has an explicit type, including those the bootstrap had pinned, such as the content and plugin paths, the cookie names, the memory limits, and the timeouts. Each type is what core expects: the values it defines and documents, and that its reads are designed for. Where real-world configurations are known to define wider values, most often by passing getenv() through unconverted, a comment notes them along with how core handles them. Widening the types to cover such values instead would require handling invalid configuration at every read.

The bootstrap definitions remain, since PHPStan does not discover constants that core defines inside a function, but their values no longer affect the analysis. The preg_replace() results that define the cookie paths are cast to strings to fit their types, and the PHPUnit bootstrap now defines the memory limits as strings to match theirs.

Developed in โ€‹https://github.com/WordPress/wordpress-develop/pull/14034.
Follow-up to r61699, r62965, r63191, r63356.

Props rahultank, westonruter.
See #65817.

Built from โ€‹https://develop.svn.wordpress.org/trunk@64672

03:16 Changeset [63821] by peterwilsoncc
  • trunk/wp-includes/certificates/ca-bundle.crt
  • trunk/wp-includes/version.php

Security: Update composer/ca-bundle to version 1.6.0.

This update adds four and removes five certificates to the bundle.

Props westonruter, peterwilsoncc.
Fixes #66355.

Built from โ€‹https://develop.svn.wordpress.org/trunk@64671

10/20/2026:

23:56 Changeset [63820] by westonruter
  • trunk/wp-includes/option.php
  • trunk/wp-includes/version.php

Docs: Allow a callable $args in register_setting().

For backward compatibility, register_setting() still accepts a sanitize callback as its third argument, converting it into the sanitize_callback argument without a deprecation notice. Its docblock documented $args only as an array, so once PHPStan began reading the hash notation in r63420, callers passing a callback were reported, such as Twenty Eleven and the deprecated add_option_update_handler(). This form remains in wide use across thousands of plugins and themes in the theme & plugin directories.

Developed in โ€‹https://github.com/WordPress/wordpress-develop/pull/14137.
Follow-up to r38635, r63420.

Props jorgefilipecosta, westonruter.
See #65817, #65860.

Built from โ€‹https://develop.svn.wordpress.org/trunk@64670

22:35 Changeset [63819] by audrasjb
  • trunk/wp-includes/class-wp-theme-json.php
  • trunk/wp-includes/version.php

Docs: Use triple digit convention for since mentions in class WP_Theme_JSON.

See #65860.

Built from โ€‹https://develop.svn.wordpress.org/trunk@64669

22:05 Changeset [63818] by lancewillett
  • trunk/wp-includes/version.php

Tests: Cover empty plugin list messages.

Test WP_Plugins_List_Table::no_items() for empty views, search terms, escaped output, directory links, installation permissions, and multisite behavior.

Developed in: โ€‹https://github.com/WordPress/wordpress-develop/pull/14585

Props huzaifaalmesbah.
See #65819.

Built from โ€‹https://develop.svn.wordpress.org/trunk@64668

22:04 Changeset [63817] by lancewillett
  • trunk/wp-includes/version.php

Tests: Cover Site Health plugin version checks.

Test WP_Site_Health::get_test_plugin_version() for active and inactive plugins, available updates, singular and plural descriptions, update links, and multisite behavior.

Developed in: โ€‹https://github.com/WordPress/wordpress-develop/pull/14582

Props huzaifaalmesbah.
See #65819.

Built from โ€‹https://develop.svn.wordpress.org/trunk@64667

22:01 Changeset [63816] by lancewillett
  • trunk/wp-includes/version.php

Tests: Cover circular plugin dependency detection.

Test WP_Plugin_Dependencies::get_circular_dependencies() and WP_Plugin_Dependencies::check_for_circular_dependencies() for cached results, acyclic dependencies, missing plugins, and dependency cycles.

Developed in: โ€‹https://github.com/WordPress/wordpress-develop/pull/14584

Props huzaifaalmesbah.
See #65819.

Built from โ€‹https://develop.svn.wordpress.org/trunk@64666

22:00 Changeset [63815] by lancewillett
  • trunk/wp-includes/version.php

Tests: Cover plugin debug information.

Test the plugin sections produced by WP_Debug_Data, including must-use plugins, active and inactive plugins, available updates, auto-update settings, and filtered debug strings.

Developed in: โ€‹https://github.com/WordPress/wordpress-develop/pull/14583

Props huzaifaalmesbah.
See #65819.

Built from โ€‹https://develop.svn.wordpress.org/trunk@64665

21:58 Changeset [63814] by lancewillett
  • trunk/wp-includes/version.php

Tests: Cover Site Health auto-update checks.

Test WP_Site_Health::detect_plugin_theme_auto_update_issues() across plugin and theme auto-update filters, settings visibility, reported statuses, and filter arguments.

Developed in: โ€‹https://github.com/WordPress/wordpress-develop/pull/14580

Props huzaifaalmesbah.
See #65819.

Built from โ€‹https://develop.svn.wordpress.org/trunk@64664

21:57 Changeset [63813] by lancewillett
  • trunk/wp-includes/version.php

Tests: Cover update counts and titles.

Test wp_get_update_data() for plugin, theme, core, and translation updates, including permissions, dismissed core updates, singular and plural titles, and filtered results.

Developed in: โ€‹https://github.com/WordPress/wordpress-develop/pull/14579

Props huzaifaalmesbah.
See #65819.

Built from โ€‹https://develop.svn.wordpress.org/trunk@64663

21:56 Changeset [63812] by lancewillett
  • trunk/wp-includes/version.php

Tests: Cover plugin update notices.

Test wp_plugin_update_row() and wp_plugin_update_rows() across update availability, permissions, package and PHP requirements, escaped output, links, hooks, and multisite screens.

Developed in: โ€‹https://github.com/WordPress/wordpress-develop/pull/14578

Props huzaifaalmesbah.
See #65819.

Built from โ€‹https://develop.svn.wordpress.org/trunk@64662

21:34 Changeset [63811] by lancewillett
  • trunk/wp-includes/version.php

Tests: Cover plugin package validation.

Add coverage for Plugin_Upgrader::check_package(), including invalid packages, plugin header discovery, remote path mapping, and unmet PHP and WordPress requirements. Verify uploaded plugin data and restore the filesystem global after each test.

Developed in: โ€‹https://github.com/WordPress/wordpress-develop/pull/14577

Props huzaifaalmesbah.
See #65819.

Built from โ€‹https://develop.svn.wordpress.org/trunk@64661

21:33 Changeset [63810] by lancewillett
  • trunk/wp-includes/version.php

Tests: Cover plugin overwrite confirmation.

Add coverage for Plugin_Installer_Skin::do_overwrite(), including comparison markup, update and downgrade actions, unmet requirements, and filtered output. Verify that after() stops after displaying the overwrite screen.

Developed in: โ€‹https://github.com/WordPress/wordpress-develop/pull/14576

Props huzaifaalmesbah.
See #65819.

Built from โ€‹https://develop.svn.wordpress.org/trunk@64660

21:32 Changeset [63809] by lancewillett
  • trunk/wp-includes/version.php

Tests: Cover AJAX plugin dependency checks.

Add coverage for WP_Plugin_Dependencies::check_plugin_dependencies_during_ajax(), including nonce validation, missing plugins, activation capabilities, dependency states, and multisite activation URLs. Restore dependency caches and revoke the class fixture's super-admin grant after testing.

Developed in: โ€‹https://github.com/WordPress/wordpress-develop/pull/14521

Props huzaifaalmesbah, mukesh27.
See #65819.

Built from โ€‹https://develop.svn.wordpress.org/trunk@64659

21:29 Changeset [63808] by lancewillett
  • trunk/wp-includes/version.php

Build/Test Tools: Recognize REST uploads in the media E2E test.

Recognize REST media-creation responses alongside classic multipart uploads when waiting for a JPEG upload. Extract the attachment ID from either response format while excluding requests for attachment markup.

This fixes the timeout introduced when browser uploads began using the REST API in [64588]. Preserve the completed-title and Edit-link assertions and attachment cleanup.

Developed in: โ€‹https://github.com/WordPress/wordpress-develop/pull/14575

Props adrianmoldovanwp.
See #52895.

Built from โ€‹https://develop.svn.wordpress.org/trunk@64658

21:28 Changeset [63807] by lancewillett
  • trunk/wp-includes/version.php

Tests: Use error assertions in Customizer manager tests.

Use assertWPError() in the Customizer manager tests. Preserve the existing error-code, validation, error-data, and changeset persistence checks.

Developed in: โ€‹https://github.com/WordPress/wordpress-develop/pull/14569

Props devmuhib.
See #65819.

Built from โ€‹https://develop.svn.wordpress.org/trunk@64657

20:22 Changeset [63806] by lancewillett
  • trunk/wp-includes/version.php

Tests: Use error assertions in authentication tests.

Use assertWPError() for authentication and password reset failures. Preserve the existing error-code and success-path checks.

Developed in: โ€‹https://github.com/WordPress/wordpress-develop/pull/14573

Props shailu25.
See #65819.

Built from โ€‹https://develop.svn.wordpress.org/trunk@64656

20:21 Changeset [63805] by lancewillett
  • trunk/wp-includes/version.php

Tests: Use error assertions in block template tests.

Use assertWPError() when unregistering an unknown block template. Preserve the assertion that the error message includes the template name.

Developed in: โ€‹https://github.com/WordPress/wordpress-develop/pull/14572

Props shailu25.
See #65819.

Built from โ€‹https://develop.svn.wordpress.org/trunk@64655

20:19 Changeset [63804] by lancewillett
  • trunk/wp-includes/version.php

Tests: Use error assertions in nav menu item setting tests.

Use assertWPError() when checking invalid URLs in the Customizer navigation menu item setting tests. Preserve the invalid_url error-code checks.

Developed in: โ€‹https://github.com/WordPress/wordpress-develop/pull/14571

Props shailu25.
See #65819.

Built from โ€‹https://develop.svn.wordpress.org/trunk@64654

20:18 Changeset [63803] by lancewillett
  • trunk/wp-includes/version.php

Tests: Use error assertions in Customizer nav menu tests.

Use assertWPError() in the Customizer navigation menu tests. Preserve the existing error-code and successful-result assertions.

Developed in: โ€‹https://github.com/WordPress/wordpress-develop/pull/14570

Props shailu25.
See #65819.

Built from โ€‹https://develop.svn.wordpress.org/trunk@64653

20:17 Changeset [63802] by lancewillett
  • trunk/wp-includes/version.php

Tests: Cover plugin list table bulk actions.

Test WP_Plugins_List_Table::get_bulk_actions() across plugin statuses, capabilities, auto-update settings, and multisite screens. Include the actual recently_activated status and restore the super-admin grant after the class.

Developed in: โ€‹https://github.com/WordPress/wordpress-develop/pull/14524

Props huzaifaalmesbah, mukesh27.
See #65819.

Built from โ€‹https://develop.svn.wordpress.org/trunk@64652

20:15 Changeset [63801] by lancewillett
  • trunk/wp-includes/version.php

Tests: Cover plugin installation status.

Add coverage for install_plugin_install_status(), including installed versions, update checks, capability-dependent URLs, and query arguments. Clean up plugin fixtures and multisite super-admin grants after testing.

Developed in: โ€‹https://github.com/WordPress/wordpress-develop/pull/14520

Props huzaifaalmesbah, mukesh27.
See #65819.

Built from โ€‹https://develop.svn.wordpress.org/trunk@64651

20:07 Changeset [63800] by lancewillett
  • trunk/wp-includes/version.php

Tests: Use assertWPError() in image editor tests.

Use the dedicated assertion helper for expected WP_Error results, preserving the existing test behavior and assertion messages.

Developed in: โ€‹https://github.com/WordPress/wordpress-develop/pull/14567

Props shailu25.
See #65819.

Built from โ€‹https://develop.svn.wordpress.org/trunk@64650

20:06 Changeset [63799] by lancewillett
  • trunk/wp-includes/version.php

Tests: Use assertWPError() in Customizer setting tests.

Use the dedicated assertion helper for expected WP_Error results, preserving the existing test behavior and assertion messages.

Developed in: โ€‹https://github.com/WordPress/wordpress-develop/pull/14568

Props shailu25.
See #65819.

Built from โ€‹https://develop.svn.wordpress.org/trunk@64649

20:05 Changeset [63798] by lancewillett
  • trunk/wp-includes/version.php

Tests: Use assertWPError() in GD image editor tests.

Use the dedicated assertion helper for expected WP_Error results, preserving the existing test behavior and assertion messages.

Developed in: โ€‹https://github.com/WordPress/wordpress-develop/pull/14566

Props shailu25.
See #65819.

Built from โ€‹https://develop.svn.wordpress.org/trunk@64648

20:04 Changeset [63797] by lancewillett
  • trunk/wp-includes/version.php

Tests: Use assertWPError() in image function tests.

Use the dedicated assertion helper for expected WP_Error results, preserving the existing test behavior and assertion messages.

Developed in: โ€‹https://github.com/WordPress/wordpress-develop/pull/14565

Props shailu25.
See #65819.

Built from โ€‹https://develop.svn.wordpress.org/trunk@64647

20:03 Changeset [63796] by lancewillett
  • trunk/wp-includes/version.php

Tests: Use assertWPError() in GD image resize tests.

Use the dedicated assertion helper for expected WP_Error results, preserving the existing test behavior and assertion messages.

Developed in: โ€‹https://github.com/WordPress/wordpress-develop/pull/14564

Props shailu25.
See #65819.

Built from โ€‹https://develop.svn.wordpress.org/trunk@64646

20:02 Changeset [63795] by lancewillett
  • trunk/wp-includes/version.php

Tests: Use assertWPError() in REST API tests.

Use the dedicated assertion helper for expected WP_Error results, preserving the existing test behavior and assertion messages.

Developed in: โ€‹https://github.com/WordPress/wordpress-develop/pull/14563

Props shailu25.
See #65819.

Built from โ€‹https://develop.svn.wordpress.org/trunk@64645

20:01 Changeset [63794] by lancewillett
  • trunk/wp-includes/version.php

Tests: Use assertWPError() in REST server tests.

Use the dedicated assertion helper for expected WP_Error results, preserving the existing test behavior and assertion messages.

Developed in: โ€‹https://github.com/WordPress/wordpress-develop/pull/14562

Props shailu25.
See #65819.

Built from โ€‹https://develop.svn.wordpress.org/trunk@64644

20:00 Changeset [63793] by lancewillett
  • trunk/wp-includes/version.php

Tests: Use assertWPError() in REST users controller tests.

Use the dedicated assertion helper for expected WP_Error results, preserving the existing test behavior and assertion messages.

Developed in: โ€‹https://github.com/WordPress/wordpress-develop/pull/14561

Props shailu25.
See #65819.

Built from โ€‹https://develop.svn.wordpress.org/trunk@64643

19:58 Changeset [63792] by lancewillett
  • trunk/wp-includes/version.php

Tests: Use assertWPError() in taxonomy tests.

Use the dedicated assertion helper for expected WP_Error results, preserving the existing test behavior and assertion messages.

Developed in: โ€‹https://github.com/WordPress/wordpress-develop/pull/14559

Props shailu25.
See #65819.

Built from โ€‹https://develop.svn.wordpress.org/trunk@64642

19:57 Changeset [63791] by lancewillett
  • trunk/wp-includes/version.php

Tests: Use assertWPError() in theme tests.

Use the dedicated assertion helper for expected WP_Error results, preserving the existing test behavior and assertion messages.

Developed in: โ€‹https://github.com/WordPress/wordpress-develop/pull/14557

Props shailu25.
See #65819.

Built from โ€‹https://develop.svn.wordpress.org/trunk@64641

19:47 Changeset [63790] by lancewillett
  • trunk/wp-includes/version.php

Tests: Use assertWPError() in user tests.

Use the dedicated assertion helper for expected WP_Error results while retaining the existing error-code and behavior checks.

Developed in: โ€‹https://github.com/WordPress/wordpress-develop/pull/14556

Props shailu25.
See #65819.

Built from โ€‹https://develop.svn.wordpress.org/trunk@64640

19:46 Changeset [63789] by lancewillett
  • trunk/wp-includes/version.php

Tests: Cover comment links.

Add coverage for get_comments_link() and comments_link(), including approved comment counts, permalink formats, post inputs, filters, escaped output, and deprecated arguments.

Developed in: โ€‹https://github.com/WordPress/wordpress-develop/pull/14536

Props rejaulalomkhan, mukesh27.
See #65819.

Built from โ€‹https://develop.svn.wordpress.org/trunk@64639

19:45 Changeset [63788] by lancewillett
  • trunk/wp-includes/version.php

Tests: Cover trackback URLs.

Add coverage for get_trackback_url() and trackback_url(), including permalink structures, site and home URL roots, filters, output, and deprecated return behavior.

Developed in: โ€‹https://github.com/WordPress/wordpress-develop/pull/14535

Props rejaulalomkhan, mukesh27.
See #65819.

Built from โ€‹https://develop.svn.wordpress.org/trunk@64638

19:44 Changeset [63787] by lancewillett
  • trunk/wp-includes/version.php

Tests: Cover language attributes.

Add coverage for get_language_attributes() and language_attributes(), including document types, locale normalization, text direction, filters, and displayed output.

Developed in: โ€‹https://github.com/WordPress/wordpress-develop/pull/14534

Props rejaulalomkhan, mukesh27.
See #65819.

Built from โ€‹https://develop.svn.wordpress.org/trunk@64637

19:43 Changeset [63786] by westonruter
  • trunk/wp-includes/html-api/class-wp-html-active-formatting-elements.php
  • trunk/wp-includes/html-api/class-wp-html-decoder.php
  • trunk/wp-includes/html-api/class-wp-html-doctype-info.php
  • trunk/wp-includes/html-api/class-wp-html-open-elements.php
  • trunk/wp-includes/html-api/class-wp-html-processor-state.php
  • trunk/wp-includes/html-api/class-wp-html-processor.php
  • trunk/wp-includes/html-api/class-wp-html-tag-processor.php
  • trunk/wp-includes/html-api/class-wp-html-token.php
  • trunk/wp-includes/version.php

HTML API: Use @link instead of @see for URL references.

In r64436 the @see tags pointing to URLs were converted to @link across core, since the WordPress inline documentation standards reserve @see for references to functions, methods, classes, and hooks. The HTML API was split out of that change so that it could be reviewed by the component's maintainers, and its references to the HTML Standard and other specifications are now converted as well, in both the classes and their tests. Where both tags appear, @see is kept ahead of @link, per the standards.

Spec references within prose or a list use the inline {@link} form instead, since a tag is only recognized at the start of a line and a block-level tag ends the description. In WP_HTML_Doctype_Info this had cut the class description short at its first reference, so that the Code Reference rendered the paragraphs after it as the link's text. Those references are now worked into the prose with descriptive link text.

Developed in โ€‹https://github.com/WordPress/wordpress-develop/pull/14370.
Follow-up to r63569, r64436.

Props huzaifaalmesbah, westonruter, jonsurrell, rejaulalomkhan.
See #65860.

Built from โ€‹https://develop.svn.wordpress.org/trunk@64636

19:42 Changeset [63785] by lancewillett
  • trunk/wp-includes/version.php

Tests: Cover archive link markup.

Add coverage for get_archives_link(), including output formats, selected states, wrappers, escaping, text formatting, and filter arguments.

Developed in: โ€‹https://github.com/WordPress/wordpress-develop/pull/14533

Props rejaulalomkhan, mukesh27.
See #65819.

Built from โ€‹https://develop.svn.wordpress.org/trunk@64635

19:41 Changeset [63784] by lancewillett
  • trunk/wp-includes/version.php

Tests: Cover privacy policy content registration.

Add coverage for wp_add_privacy_policy_content() and WP_Privacy_Policy_Content::add(), including admin context, action timing, empty input, and duplicate content.

Developed in: โ€‹https://github.com/WordPress/wordpress-develop/pull/14531

Props huzaifaalmesbah, mukesh27.
See #65819.

Built from โ€‹https://develop.svn.wordpress.org/trunk@64634

19:40 Changeset [63783] by lancewillett
  • trunk/wp-includes/version.php

Tests: Cover post datetime and timestamp helpers.

Add coverage for get_post_datetime() and get_post_timestamp(), including local and UTC fields, timezone conversion, daylight saving time, and invalid dates.

Developed in: โ€‹https://github.com/WordPress/wordpress-develop/pull/14530

Props rejaulalomkhan, mukesh27.
See #65819.

Built from โ€‹https://develop.svn.wordpress.org/trunk@64633

19:39 Changeset [63782] by lancewillett
  • trunk/wp-includes/version.php

Tests: Cover bookmark editing links.

Add coverage for get_edit_bookmark_link() and edit_bookmark_link(), including permissions, Link Manager availability, bookmark inputs, filters, and escaped output.

Developed in: โ€‹https://github.com/WordPress/wordpress-develop/pull/14529

Props rejaulalomkhan, mukesh27.
See #65819.

Built from โ€‹https://develop.svn.wordpress.org/trunk@64632

18:48 Changeset [63781] by lancewillett
  • trunk/wp-includes/version.php

Tests: Cover post type archive feed links.

Add coverage for get_post_type_archive_feed_link(), including invalid post types, permalink settings, archive rewrites, default feed selection, and filters.

Developed in: โ€‹https://github.com/WordPress/wordpress-develop/pull/14528

Props rejaulalomkhan, mukesh27.
See #65819.

Built from โ€‹https://develop.svn.wordpress.org/trunk@64631

18:45 Changeset [63780] by lancewillett
  • trunk/wp-includes/version.php

Tests: Cover page permalink generation.

Add coverage for get_page_link() and _get_page_link(), including permalink formats, page hierarchy, drafts, private pages, the static front page, and filters.

Developed in: โ€‹https://github.com/WordPress/wordpress-develop/pull/14527

Props rejaulalomkhan, mukesh27.
See #65819.

Built from โ€‹https://develop.svn.wordpress.org/trunk@64630

18:43 Changeset [63779] by lancewillett
  • trunk/wp-includes/version.php

Tests: Cover plugin dependency notices.

Add coverage for WP_Plugin_Install_List_Table::get_dependencies_notice(), including stored dependency data, API fallbacks, escaping, dependency order, and multisite URLs.

Developed in: โ€‹https://github.com/WordPress/wordpress-develop/pull/14526

Props huzaifaalmesbah, mukesh27.
See #65819.

Built from โ€‹https://develop.svn.wordpress.org/trunk@64629

18:41 Changeset [63778] by lancewillett
  • trunk/wp-includes/version.php

Tests: Cover dispatch to the all hook.

Add coverage for _wp_call_all_hook() through action and filter dispatch, including argument forwarding, callback priority, and current-filter cleanup.

Developed in: โ€‹https://github.com/WordPress/wordpress-develop/pull/14525

Props huzaifaalmesbah, mukesh27.
See #65819.

Built from โ€‹https://develop.svn.wordpress.org/trunk@64628

18:39 Changeset [63777] by lancewillett
  • trunk/wp-includes/version.php

Tests: Cover plugin lifecycle hook registration.

Add coverage for register_activation_hook(), register_deactivation_hook(), and register_uninstall_hook(). Verify hook names, callback arguments, uninstall callback validation, and option persistence.

Developed in: โ€‹https://github.com/WordPress/wordpress-develop/pull/14523

Props huzaifaalmesbah, mukesh27.
See #65819.

Built from โ€‹https://develop.svn.wordpress.org/trunk@64627

18:37 Changeset [63776] by lancewillett
  • trunk/wp-includes/version.php

Tests: Cover plugin header markup and translation.

Add coverage for _get_plugin_data_markup_translate(), including sanitization, link markup, translation settings, text domains, and domain paths.

Developed in: โ€‹https://github.com/WordPress/wordpress-develop/pull/14522

Props huzaifaalmesbah, mukesh27.
See #65819.

Built from โ€‹https://develop.svn.wordpress.org/trunk@64626

18:35 Changeset [63775] by lancewillett
  • trunk/wp-includes/version.php

Tests: Cover search feed links.

Add coverage for get_search_feed_link() and get_search_comments_feed_link(), including permalink formats, feed types, query encoding, and filters.

Developed in: โ€‹https://github.com/WordPress/wordpress-develop/pull/14519

Props rejaulalomkhan.
See #65819.

Built from โ€‹https://develop.svn.wordpress.org/trunk@64625

18:13 Changeset [63774] by lancewillett
  • trunk/wp-includes/version.php

Build/Test Tools: Cover plugin upload and management.

Add browser checks for plugin upload, activation and deactivation, replacement with a newer uploaded version, and deletion. Verify saved plugin status, version, and removal through REST.

Use small local ZIP fixtures containing only plugin headers. Install prerequisites for each case and clean up only the fixture plugin.

Developed in: โ€‹https://github.com/WordPress/wordpress-develop/pull/8075

Props juhise, lucatume.
See #52895.

Built from โ€‹https://develop.svn.wordpress.org/trunk@64624

18:09 Changeset [63773] by lancewillett
  • trunk/wp-includes/version.php

Build/Test Tools: Cover successful media uploads.

Upload a JPEG through the media uploader's file picker and verify the completed attachment title and its Edit link. Capture the attachment ID before assertions so cleanup removes the uploaded attachment even when a check fails.

Reuse the existing JPEG fixture and retain the failed-upload dismissal test.

Developed in: โ€‹https://github.com/WordPress/wordpress-develop/pull/8047

Props juhise, lucatume.
See #52895.

Built from โ€‹https://develop.svn.wordpress.org/trunk@64623

18:03 Changeset [63772] by lancewillett
  • trunk/wp-includes/version.php

Build/Test Tools: Cover persisted dashboard preferences.

Add browser checks for Welcome panel dismissal and visibility, widget visibility, collapse and expansion, and widget ordering. Verify each preference persists after reload.

Use a temporary administrator for each case to preserve shared user preferences. Permanently delete that user's Quick Draft auto-drafts before removing the user.

Developed in: โ€‹https://github.com/WordPress/wordpress-develop/pull/8095

Props juhise, lucatume.
See #52895.

Built from โ€‹https://develop.svn.wordpress.org/trunk@64622

18:03 Changeset [63771] by lancewillett
  • trunk/wp-includes/version.php

Tests: Cover elapsed request time from timer_float().

Verify that timer_float() returns elapsed seconds as a float, bounded by the supplied request-start timestamp and the current time. Restore $_SERVER['REQUEST_TIME_FLOAT'] after the test.

Developed in: โ€‹https://github.com/WordPress/wordpress-develop/pull/14484

Props shailu25, mukesh27.
See #65819.

Built from โ€‹https://develop.svn.wordpress.org/trunk@64621

18:00 Changeset [63770] by lancewillett
  • trunk/wp-includes/version.php

Build/Test Tools: Cover changing selected posts to drafts in bulk.

Add a browser test that uses Bulk Edit to change two published posts to drafts. Verify the draft labels after reload and both saved statuses, while an unselected control remains published.

Create fixtures through REST and delete only those posts during cleanup.

Developed in: โ€‹https://github.com/WordPress/wordpress-develop/pull/8045

Props juhise, lucatume.
See #52895.

Built from โ€‹https://develop.svn.wordpress.org/trunk@64620

17:59 Changeset [63769] by lancewillett
  • trunk/wp-includes/version.php

Build/Test Tools: Cover moving selected posts to Trash in bulk.

Add a browser test that selects two published posts and moves them to Trash through the bulk-action form. Verify both saved statuses become trash while an unselected control remains visible and published.

Create fixtures through REST and delete only those posts during cleanup.

Developed in: โ€‹https://github.com/WordPress/wordpress-develop/pull/8040

Props juhise, lucatume.
See #52895.

Built from โ€‹https://develop.svn.wordpress.org/trunk@64619

17:56 Changeset [63768] by lancewillett
  • trunk/wp-includes/version.php

Build/Test Tools: Cover restoring a trashed post with Undo.

Add a browser test that trashes a published post, clicks Undo, and verifies that the same post returns with its original publish status. This distinguishes Undo from ordinary Restore, which defaults to draft.

Create the fixture through REST and delete only that post during cleanup.

Developed in: โ€‹https://github.com/WordPress/wordpress-develop/pull/7995

Props jayson31, lucatume.
See #52895.

Built from โ€‹https://develop.svn.wordpress.org/trunk@64618

17:55 Changeset [63767] by lancewillett
  • trunk/wp-includes/version.php

Build/Test Tools: Cover page parent selection in Quick Edit.

Add a browser test that assigns a page parent through Quick Edit, reloads the page list, and verifies the saved selection. Check that the page cannot select itself as its parent.

Create fixtures through REST and delete only those pages after the test.

Developed in: โ€‹https://github.com/WordPress/wordpress-develop/pull/7992

Props jayson31, lucatume.
See #52895.

Built from โ€‹https://develop.svn.wordpress.org/trunk@64617

17:53 Changeset [63766] by lancewillett
  • trunk/wp-includes/version.php

Tests: Cover media date filtering in attachment queries.

Exercise wp_ajax_query_attachments() with attachments in different months and years. Check the exact returned IDs for a selected month and year, a month without matches, and all dates.

Cover the server-side date query without requiring browser tests or image files.

Developed in: โ€‹https://github.com/WordPress/wordpress-develop/pull/7947

Props jayson31, jorbin, lucatume.
See #65252, #52895.

Built from โ€‹https://develop.svn.wordpress.org/trunk@64616

17:52 Changeset [63765] by lancewillett
  • trunk/wp-includes/version.php

Build/Test Tools: Cover user creation and bulk deletion.

Add browser tests for creating a user through the admin form and logging in with the generated password, and for deleting selected users through the bulk-action confirmation screen while preserving an unselected user.

Use REST fixtures and cleanup scoped to the test users. Cover the single-site user-management screens.

Developed in: โ€‹https://github.com/WordPress/wordpress-develop/pull/7732

Props pavanpatil1, apermo, juhise, lucatume.
See #52895.

Built from โ€‹https://develop.svn.wordpress.org/trunk@64615

17:49 Changeset [63764] by lancewillett
  • trunk/wp-includes/version.php

Tests: Cover navigation menu conditionals.

Add coverage for is_nav_menu(), has_nav_menu(), and is_nav_menu_item(), including menu identification, location assignments, filters, invalid inputs, and trashed menu items.

Preserve menu registrations and theme support across each test.

Developed in: โ€‹https://github.com/WordPress/wordpress-develop/pull/14354

Props ravipatel, mukesh27.
See #65819.

Built from โ€‹https://develop.svn.wordpress.org/trunk@64614

17:47 Changeset [63763] by lancewillett
  • trunk/wp-includes/version.php

Tests: Cover permalink anchor output.

Add coverage for permalink_anchor() modes, case-insensitive arguments, fallback behavior, and sanitized title anchors. Use a literal expected slug for the special-character title.

Developed in: โ€‹https://github.com/WordPress/wordpress-develop/pull/14486

Props rejaulalomkhan, mukesh27.
See #65819.

Built from โ€‹https://develop.svn.wordpress.org/trunk@64613

17:46 Changeset [63762] by lancewillett
  • trunk/wp-includes/version.php

Tests: Expand category ancestry tests.

Expand cat_is_ancestor_of() coverage for hierarchy depth, category IDs and objects, invalid inputs, and unrelated terms. Preserve the hierarchical cross-taxonomy regression test that protects the category-only restriction.

Developed in: โ€‹https://github.com/WordPress/wordpress-develop/pull/14430

Props rejaulalomkhan.
See #65819.

Built from โ€‹https://develop.svn.wordpress.org/trunk@64612

17:45 Changeset [63761] by lancewillett
  • trunk/wp-includes/version.php

Tests: Cover automatic update eligibility decisions.

Add coverage for WP_Automatic_Updater::should_update(), including filesystem checks, core update policy, plugin and theme settings, translation updates, filters, version requirements, and core notification behavior.

Developed in: โ€‹https://github.com/WordPress/wordpress-develop/pull/14453

Props huzaifaalmesbah, rejaulalomkhan.
See #65819.

Built from โ€‹https://develop.svn.wordpress.org/trunk@64611

17:15 Changeset [63760] by SergeyBiryukov
  • trunk/wp-content/themes/twentynineteen/package-lock.json
  • trunk/wp-content/themes/twentynineteen/package.json
  • trunk/wp-content/themes/twentynineteen/sass/mixins/_mixins-master.scss
  • trunk/wp-content/themes/twentynineteen/sass/site/primary/_comments.scss
  • trunk/wp-content/themes/twentynineteen/sass/variables-site/_fonts.scss
  • trunk/wp-includes/version.php

Twenty Nineteen: Adjust sass usage.

This commit:

  • Updates package-lock.json after npm audit fix and npm dedupe (which might be done with other npm updates anyway).
  • Changes the build to run each command sequentially, so npm run build does not need to be used twice to update the RTL stylesheet.
  • Introduces sass:string to prevent deprecation warnings for unquote() global built-in.
  • Uses math.div() to prevent deprecation warnings for slash-div calculations.
  • Does not replace @import (yet).

Developed in โ€‹https://github.com/WordPress/wordpress-develop/pull/14549.

Follow-up to r64387.

Props sabernhardt, rejaulalomkhan.
Fixes #63013.
Built from โ€‹https://develop.svn.wordpress.org/trunk@64610

16:53 Changeset [63759] by lancewillett
  • trunk/wp-includes/version.php

Tests: Cover theme data preparation for JavaScript.

Add coverage for wp_prepare_themes_for_js(), including theme metadata and ordering, capability-dependent actions, update availability, auto-update settings, filters, and multisite allowed themes.

Developed in: โ€‹https://github.com/WordPress/wordpress-develop/pull/14450

Props huzaifaalmesbah.
See #65819.

Built from โ€‹https://develop.svn.wordpress.org/trunk@64609

16:51 Changeset [63758] by lancewillett
  • trunk/wp-includes/version.php

Tests: Cover legacy widget settings conversion.

Add coverage for wp_convert_widget_settings(), including single-widget conversion, preservation of multi-widget settings, front-end sidebar updates in memory, and admin persistence.

Use a numeric string key that remains a string to distinguish is_numeric() from integer-only checks.

Developed in: โ€‹https://github.com/WordPress/wordpress-develop/pull/14422

Props huzaifaalmesbah.
See #65819.

Built from โ€‹https://develop.svn.wordpress.org/trunk@64608

16:43 Changeset [63757] by SergeyBiryukov
  • trunk/wp-includes/version.php

Docs: Correct the @param tag in a wp_is_internal_link() test.

The tag for Tests_Link_WpIsInternalLink::test_wp_is_internal_link_returns_true_for_internal_urls() named a $path parameter, but the parameter is $scheme_and_path. The data provider passes a URL format with a %s placeholder for the home host, not a path, so the description is updated as well.

Developed in โ€‹https://github.com/WordPress/wordpress-develop/pull/14539.

Follow-up to r64510.

Props Soean.
See #65819.
Built from โ€‹https://develop.svn.wordpress.org/trunk@64607

15:59 Changeset [63756] by audrasjb
  • trunk/wp-includes/version.php

Post WordPress 7.2 Beta 1 version bump.

Built from โ€‹https://develop.svn.wordpress.org/trunk@64606

15:31 Changeset [63755] by audrasjb
  • trunk/wp-includes/version.php

WordPress 7.2 Beta 1.

Built from โ€‹https://develop.svn.wordpress.org/trunk@64605

15:09 Changeset [63754] by davidbaumwald
  • trunk/wp-includes/version.php

REST API: Cleanup empty test file.

[64602] was meant to delete this file.

Follow-up to [64602].

Props audrasjb, SergeyBiryukov.
See #66267.
Built from โ€‹https://develop.svn.wordpress.org/trunk@64604

14:49 Changeset [63753] by audrasjb
  • trunk/wp-admin/css/colors/_admin.scss
  • trunk/wp-admin/css/colors/blue/colors-rtl.css
  • trunk/wp-admin/css/colors/blue/colors-rtl.min.css
  • trunk/wp-admin/css/colors/blue/colors.css
  • trunk/wp-admin/css/colors/blue/colors.min.css
  • trunk/wp-admin/css/colors/coffee/colors-rtl.css
  • trunk/wp-admin/css/colors/coffee/colors-rtl.min.css
  • trunk/wp-admin/css/colors/coffee/colors.css
  • trunk/wp-admin/css/colors/coffee/colors.min.css
  • trunk/wp-admin/css/colors/ectoplasm/colors-rtl.css
  • trunk/wp-admin/css/colors/ectoplasm/colors-rtl.min.css
  • trunk/wp-admin/css/colors/ectoplasm/colors.css
  • trunk/wp-admin/css/colors/ectoplasm/colors.min.css
  • trunk/wp-admin/css/colors/light/colors-rtl.css
  • trunk/wp-admin/css/colors/light/colors-rtl.min.css
  • trunk/wp-admin/css/colors/light/colors.css
  • trunk/wp-admin/css/colors/light/colors.min.css
  • trunk/wp-admin/css/colors/midnight/colors-rtl.css
  • trunk/wp-admin/css/colors/midnight/colors-rtl.min.css
  • trunk/wp-admin/css/colors/midnight/colors.css
  • trunk/wp-admin/css/colors/midnight/colors.min.css
  • trunk/wp-admin/css/colors/modern/colors-rtl.css
  • trunk/wp-admin/css/colors/modern/colors-rtl.min.css
  • trunk/wp-admin/css/colors/modern/colors.css
  • trunk/wp-admin/css/colors/modern/colors.min.css
  • trunk/wp-admin/css/colors/ocean/colors-rtl.css
  • trunk/wp-admin/css/colors/ocean/colors-rtl.min.css
  • trunk/wp-admin/css/colors/ocean/colors.css
  • trunk/wp-admin/css/colors/ocean/colors.min.css
  • trunk/wp-admin/css/colors/sunrise/colors-rtl.css
  • trunk/wp-admin/css/colors/sunrise/colors-rtl.min.css
  • trunk/wp-admin/css/colors/sunrise/colors.css
  • trunk/wp-admin/css/colors/sunrise/colors.min.css
  • trunk/wp-includes/version.php

Administration: Add a reusable .delete-link CSS class.

This changeset adds a reusable .delete-link admin CSS class for destructive action links. This class mirrors the existing .button-link-delete color rules (base + hover/focus) in the admin color schemes. This enhancement gives plugin and theme authors a standard class instead of reusing unrelated core selectors or copying link styles by hand.

Developed in: โ€‹https://github.com/WordPress/wordpress-develop/pull/13265.

Props flixos90, afercia, joedolson, sukhendu2002, wildworks, khokansardar, audrasjb, sajib1223, im3dabasia1.
Fixes #36882.

Built from โ€‹https://develop.svn.wordpress.org/trunk@64603

14:47 Changeset [63752] by jorgefilipecosta
  • trunk/wp-includes/rest-api.php
  • trunk/wp-includes/rest-api/endpoints/class-wp-rest-entity-fields-controller.php
  • trunk/wp-includes/rest-api/endpoints/class-wp-rest-view-config-controller.php
  • trunk/wp-includes/version.php

REST API: Use wp_prepare_json_value_for_client() for view configs and entity fields.

Removes the private _rest_cast_empty_objects_from_schema() helper, so a single function prepares empty objects according to a schema. The view config and entity fields endpoints now call wp_prepare_json_value_for_client(), and WP_REST_View_Config_Controller::cast_empty_objects() delegates to it. The private helper was added in this release cycle, so it is removed without deprecation.
wp_prepare_json_value_for_client() also recurses into the matching oneOf/anyOf branch and into patternProperties, and keeps [] when the schema also allows an array. No view config or entity fields schema allows both an object and an array, so the existing responses are unchanged.

Developed in โ€‹https://github.com/WordPress/wordpress-develop/pull/14552.

Follow-up to [64503], [64592].

Props jorgefilipecosta, oandregal.
See #66267.
Built from โ€‹https://develop.svn.wordpress.org/trunk@64602

14:34 Changeset [63751] by jorgefilipecosta
  • trunk/wp-includes/class-wp-entity-actions-registry.php
  • trunk/wp-includes/version.php

Editor: Remove the unsupported single action context.

Removes single from the context values the entity actions registry supports, leaving list. No screen shows the actions of the single context, so an action registered with it showed nowhere. Removing it before 7.2 ships keeps the option to add it later with a defined meaning.
An action registered with single is now reported with _doing_it_wrong(), like any other unsupported value, and single is no longer in the context enum of the /wp/v2/entity-actions schema.

Developed in โ€‹https://github.com/WordPress/wordpress-develop/pull/14545.
Synced from โ€‹https://github.com/WordPress/gutenberg/pull/85186.

Follow-up to [64517].

Props jorgefilipecosta, oandregal.
See #66343.
Built from โ€‹https://develop.svn.wordpress.org/trunk@64601

14:19 Changeset [63750] by audrasjb
  • trunk/wp-includes/class-wp-theme-json.php
  • trunk/wp-includes/version.php

Editor: Support the current state for Navigation Submenu in theme.json.

This changeset backports the WP_Theme_JSON changes from GB76367, and is a follow-up to #64806.

Themes can style the current link inside a Navigation Submenu dropdown with -current on core/navigation-submenu in theme.json, including its :hover, :focus, :focus-visible and :active states.

The block's selectors.states selector arrives with the Gutenberg package sync, so the new test uses get_styles_for_block() with explicit style nodes, like the existing custom state tests.

Developed in:

Follow-up to #62641.

Props onemaggie.
Fixes #66312.
See #64806.

Built from โ€‹https://develop.svn.wordpress.org/trunk@64600

13:33 Changeset [63749] by Mamaduka
  • trunk/wp-includes/assets/icon-library-manifest.php
  • trunk/wp-includes/assets/script-loader-packages.php
  • trunk/wp-includes/assets/script-modules-packages.php
  • trunk/wp-includes/blocks/accordion-heading/block.json
  • trunk/wp-includes/blocks/blocks-json.php
  • trunk/wp-includes/blocks/button.php
  • trunk/wp-includes/blocks/comments-pagination-next/block.json
  • trunk/wp-includes/blocks/comments-pagination-next/style-rtl.css
  • trunk/wp-includes/blocks/comments-pagination-next/style-rtl.min.css
  • trunk/wp-includes/blocks/comments-pagination-next/style.css
  • trunk/wp-includes/blocks/comments-pagination-next/style.min.css
  • trunk/wp-includes/blocks/comments-pagination-previous/block.json
  • trunk/wp-includes/blocks/comments-pagination-previous/style-rtl.css
  • trunk/wp-includes/blocks/comments-pagination-previous/style-rtl.min.css
  • trunk/wp-includes/blocks/comments-pagination-previous/style.css
  • trunk/wp-includes/blocks/comments-pagination-previous/style.min.css
  • trunk/wp-includes/blocks/cover.php
  • trunk/wp-includes/blocks/cover/block.json
  • trunk/wp-includes/blocks/file/block.json
  • trunk/wp-includes/blocks/file/style-rtl.css
  • trunk/wp-includes/blocks/file/style-rtl.min.css
  • trunk/wp-includes/blocks/file/style.css
  • trunk/wp-includes/blocks/file/style.min.css
  • trunk/wp-includes/blocks/gallery.php
  • trunk/wp-includes/blocks/heading/block.json
  • trunk/wp-includes/blocks/html/editor-rtl.css
  • trunk/wp-includes/blocks/html/editor-rtl.min.css
  • trunk/wp-includes/blocks/html/editor.css
  • trunk/wp-includes/blocks/html/editor.min.css
  • trunk/wp-includes/blocks/icon.php
  • trunk/wp-includes/blocks/icon/block.json
  • trunk/wp-includes/blocks/icon/editor-rtl.css
  • trunk/wp-includes/blocks/icon/editor-rtl.min.css
  • trunk/wp-includes/blocks/icon/editor.css
  • trunk/wp-includes/blocks/icon/editor.min.css
  • trunk/wp-includes/blocks/image.php
  • trunk/wp-includes/blocks/image/style-rtl.css
  • trunk/wp-includes/blocks/image/style-rtl.min.css
  • trunk/wp-includes/blocks/image/style.css
  • trunk/wp-includes/blocks/image/style.min.css
  • trunk/wp-includes/blocks/list/block.json
  • trunk/wp-includes/blocks/loginout/block.json
  • trunk/wp-includes/blocks/media-text/style-rtl.css
  • trunk/wp-includes/blocks/media-text/style-rtl.min.css
  • trunk/wp-includes/blocks/media-text/style.css
  • trunk/wp-includes/blocks/media-text/style.min.css
  • trunk/wp-includes/blocks/navigation-overlay-close/block.json
  • trunk/wp-includes/blocks/navigation.php
  • trunk/wp-includes/blocks/paragraph/block.json
  • trunk/wp-includes/blocks/paragraph/editor-rtl.css
  • trunk/wp-includes/blocks/paragraph/editor-rtl.min.css
  • trunk/wp-includes/blocks/paragraph/editor.css
  • trunk/wp-includes/blocks/paragraph/editor.min.css
  • trunk/wp-includes/blocks/playlist/block.json
  • trunk/wp-includes/blocks/post-navigation-link.php
  • trunk/wp-includes/blocks/post-navigation-link/block.json
  • trunk/wp-includes/blocks/post-template/block.json
  • trunk/wp-includes/blocks/post-title/block.json
  • trunk/wp-includes/blocks/pullquote/block.json
  • trunk/wp-includes/blocks/query/editor-rtl.css
  • trunk/wp-includes/blocks/query/editor-rtl.min.css
  • trunk/wp-includes/blocks/query/editor.css
  • trunk/wp-includes/blocks/query/editor.min.css
  • trunk/wp-includes/blocks/quote/block.json
  • trunk/wp-includes/blocks/search.php
  • trunk/wp-includes/blocks/search/block.json
  • trunk/wp-includes/blocks/search/editor-rtl.css
  • trunk/wp-includes/blocks/search/editor-rtl.min.css
  • trunk/wp-includes/blocks/search/editor.css
  • trunk/wp-includes/blocks/search/editor.min.css
  • trunk/wp-includes/blocks/search/style-rtl.css
  • trunk/wp-includes/blocks/search/style-rtl.min.css
  • trunk/wp-includes/blocks/search/style.css
  • trunk/wp-includes/blocks/search/style.min.css
  • trunk/wp-includes/blocks/tab-list.php
  • trunk/wp-includes/blocks/tab-list/block.json
  • trunk/wp-includes/blocks/table/block.json
  • trunk/wp-includes/blocks/template-part.php
  • trunk/wp-includes/blocks/term-count.php
  • trunk/wp-includes/blocks/term-count/block.json
  • trunk/wp-includes/blocks/term-template.php
  • trunk/wp-includes/blocks/term-template/block.json
  • trunk/wp-includes/blocks/terms-query/block.json
  • trunk/wp-includes/blocks/video.php
  • trunk/wp-includes/blocks/video/block.json
  • trunk/wp-includes/build/constants.php
  • trunk/wp-includes/build/pages/font-library/page-wp-admin.php
  • trunk/wp-includes/build/pages/font-library/page.php
  • trunk/wp-includes/build/pages/options-connectors/page-wp-admin.php
  • trunk/wp-includes/build/pages/options-connectors/page.php
  • trunk/wp-includes/build/routes/connectors-home/content.js
  • trunk/wp-includes/build/routes/connectors-home/content.min.asset.php
  • trunk/wp-includes/build/routes/connectors-home/content.min.js
  • trunk/wp-includes/build/routes/font-list/content.js
  • trunk/wp-includes/build/routes/font-list/content.min.asset.php
  • trunk/wp-includes/build/routes/font-list/content.min.js
  • trunk/wp-includes/build/scripts
  • trunk/wp-includes/build/scripts/core-actions
  • trunk/wp-includes/build/scripts/core-actions/index.php
  • trunk/wp-includes/build/scripts/core-actions/page
  • trunk/wp-includes/build/scripts/core-actions/page/set-as-homepage
  • trunk/wp-includes/build/scripts/core-actions/page/set-as-homepage/action.php
  • trunk/wp-includes/build/scripts/core-actions/page/set-as-posts-page
  • trunk/wp-includes/build/scripts/core-actions/page/set-as-posts-page/action.php
  • trunk/wp-includes/build/scripts/core-actions/post_type_supports
  • trunk/wp-includes/build/scripts/core-actions/post_type_supports/delete-post
  • trunk/wp-includes/build/scripts/core-actions/post_type_supports/delete-post/action.php
  • trunk/wp-includes/build/scripts/core-actions/post_type_supports/duplicate-post
  • trunk/wp-includes/build/scripts/core-actions/post_type_supports/duplicate-post/action.php
  • trunk/wp-includes/build/scripts/core-actions/post_type_supports/move-to-trash
  • trunk/wp-includes/build/scripts/core-actions/post_type_supports/move-to-trash/action.php
  • trunk/wp-includes/build/scripts/core-actions/post_type_supports/order-pages
  • trunk/wp-includes/build/scripts/core-actions/post_type_supports/order-pages/action.php
  • trunk/wp-includes/build/scripts/core-actions/post_type_supports/permanently-delete
  • trunk/wp-includes/build/scripts/core-actions/post_type_supports/permanently-delete/action.php
  • trunk/wp-includes/build/scripts/core-actions/post_type_supports/rename-post
  • trunk/wp-includes/build/scripts/core-actions/post_type_supports/rename-post/action.php
  • trunk/wp-includes/build/scripts/core-actions/post_type_supports/reset-post
  • trunk/wp-includes/build/scripts/core-actions/post_type_supports/reset-post/action.php
  • trunk/wp-includes/build/scripts/core-actions/post_type_supports/restore
  • trunk/wp-includes/build/scripts/core-actions/post_type_supports/restore/action.php
  • trunk/wp-includes/build/scripts/core-actions/post_type_supports/view-post
  • trunk/wp-includes/build/scripts/core-actions/post_type_supports/view-post-revisions
  • trunk/wp-includes/build/scripts/core-actions/post_type_supports/view-post-revisions/action.php
  • trunk/wp-includes/build/scripts/core-actions/post_type_supports/view-post/action.php
  • trunk/wp-includes/build/scripts/core-actions/wp_block
  • trunk/wp-includes/build/scripts/core-actions/wp_block/duplicate-pattern
  • trunk/wp-includes/build/scripts/core-actions/wp_block/duplicate-pattern/action.php
  • trunk/wp-includes/build/scripts/core-actions/wp_block/export-pattern
  • trunk/wp-includes/build/scripts/core-actions/wp_block/export-pattern/action.php
  • trunk/wp-includes/build/scripts/core-actions/wp_template_part
  • trunk/wp-includes/build/scripts/core-actions/wp_template_part/duplicate-template-part
  • trunk/wp-includes/build/scripts/core-actions/wp_template_part/duplicate-template-part/action.php
  • trunk/wp-includes/build/scripts/core-fields
  • trunk/wp-includes/build/scripts/core-fields/attachment
  • trunk/wp-includes/build/scripts/core-fields/attachment/alt_text
  • trunk/wp-includes/build/scripts/core-fields/attachment/alt_text/field.php
  • trunk/wp-includes/build/scripts/core-fields/attachment/attached_to
  • trunk/wp-includes/build/scripts/core-fields/attachment/attached_to/field.php
  • trunk/wp-includes/build/scripts/core-fields/attachment/author
  • trunk/wp-includes/build/scripts/core-fields/attachment/author/field.php
  • trunk/wp-includes/build/scripts/core-fields/attachment/caption
  • trunk/wp-includes/build/scripts/core-fields/attachment/caption/field.php
  • trunk/wp-includes/build/scripts/core-fields/attachment/date
  • trunk/wp-includes/build/scripts/core-fields/attachment/date/field.php
  • trunk/wp-includes/build/scripts/core-fields/attachment/description
  • trunk/wp-includes/build/scripts/core-fields/attachment/description/field.php
  • trunk/wp-includes/build/scripts/core-fields/attachment/filename
  • trunk/wp-includes/build/scripts/core-fields/attachment/filename/field.php
  • trunk/wp-includes/build/scripts/core-fields/attachment/filesize
  • trunk/wp-includes/build/scripts/core-fields/attachment/filesize/field.php
  • trunk/wp-includes/build/scripts/core-fields/attachment/index.php
  • trunk/wp-includes/build/scripts/core-fields/attachment/media_dimensions
  • trunk/wp-includes/build/scripts/core-fields/attachment/media_dimensions/field.php
  • trunk/wp-includes/build/scripts/core-fields/attachment/media_thumbnail
  • trunk/wp-includes/build/scripts/core-fields/attachment/media_thumbnail/field.php
  • trunk/wp-includes/build/scripts/core-fields/attachment/mime_type
  • trunk/wp-includes/build/scripts/core-fields/attachment/mime_type/field.php
  • trunk/wp-includes/build/scripts/core-fields/attachment/modified
  • trunk/wp-includes/build/scripts/core-fields/attachment/modified/field.php
  • trunk/wp-includes/build/scripts/core-fields/attachment/title
  • trunk/wp-includes/build/scripts/core-fields/attachment/title/field.php
  • trunk/wp-includes/build/scripts/core-fields/index.php
  • trunk/wp-includes/build/scripts/core-fields/page
  • trunk/wp-includes/build/scripts/core-fields/page/index.php
  • trunk/wp-includes/build/scripts/core-fields/page/title
  • trunk/wp-includes/build/scripts/core-fields/page/title/field.php
  • trunk/wp-includes/build/scripts/core-fields/post_type_supports
  • trunk/wp-includes/build/scripts/core-fields/post_type_supports/author
  • trunk/wp-includes/build/scripts/core-fields/post_type_supports/author/field.php
  • trunk/wp-includes/build/scripts/core-fields/post_type_supports/comment_status
  • trunk/wp-includes/build/scripts/core-fields/post_type_supports/comment_status/field.php
  • trunk/wp-includes/build/scripts/core-fields/post_type_supports/date
  • trunk/wp-includes/build/scripts/core-fields/post_type_supports/date/field.php
  • trunk/wp-includes/build/scripts/core-fields/post_type_supports/discussion
  • trunk/wp-includes/build/scripts/core-fields/post_type_supports/discussion/field.php
  • trunk/wp-includes/build/scripts/core-fields/post_type_supports/excerpt
  • trunk/wp-includes/build/scripts/core-fields/post_type_supports/excerpt/field.php
  • trunk/wp-includes/build/scripts/core-fields/post_type_supports/featured_media
  • trunk/wp-includes/build/scripts/core-fields/post_type_supports/featured_media/field.php
  • trunk/wp-includes/build/scripts/core-fields/post_type_supports/format
  • trunk/wp-includes/build/scripts/core-fields/post_type_supports/format/field.php
  • trunk/wp-includes/build/scripts/core-fields/post_type_supports/last_edited_date
  • trunk/wp-includes/build/scripts/core-fields/post_type_supports/last_edited_date/field.php
  • trunk/wp-includes/build/scripts/core-fields/post_type_supports/notes
  • trunk/wp-includes/build/scripts/core-fields/post_type_supports/notes/field.php
  • trunk/wp-includes/build/scripts/core-fields/post_type_supports/parent
  • trunk/wp-includes/build/scripts/core-fields/post_type_supports/parent/field.php
  • trunk/wp-includes/build/scripts/core-fields/post_type_supports/password
  • trunk/wp-includes/build/scripts/core-fields/post_type_supports/password/field.php
  • trunk/wp-includes/build/scripts/core-fields/post_type_supports/ping_status
  • trunk/wp-includes/build/scripts/core-fields/post_type_supports/ping_status/field.php
  • trunk/wp-includes/build/scripts/core-fields/post_type_supports/post_content_info
  • trunk/wp-includes/build/scripts/core-fields/post_type_supports/post_content_info/field.php
  • trunk/wp-includes/build/scripts/core-fields/post_type_supports/scheduled_date
  • trunk/wp-includes/build/scripts/core-fields/post_type_supports/scheduled_date/field.php
  • trunk/wp-includes/build/scripts/core-fields/post_type_supports/slug
  • trunk/wp-includes/build/scripts/core-fields/post_type_supports/slug/field.php
  • trunk/wp-includes/build/scripts/core-fields/post_type_supports/status
  • trunk/wp-includes/build/scripts/core-fields/post_type_supports/status/field.php
  • trunk/wp-includes/build/scripts/core-fields/post_type_supports/sticky
  • trunk/wp-includes/build/scripts/core-fields/post_type_supports/sticky/field.php
  • trunk/wp-includes/build/scripts/core-fields/post_type_supports/template
  • trunk/wp-includes/build/scripts/core-fields/post_type_supports/template/field.php
  • trunk/wp-includes/build/scripts/core-fields/post_type_supports/title
  • trunk/wp-includes/build/scripts/core-fields/post_type_supports/title/field.php
  • trunk/wp-includes/build/scripts/core-fields/root_site
  • trunk/wp-includes/build/scripts/core-fields/root_site/description
  • trunk/wp-includes/build/scripts/core-fields/root_site/description/field.php
  • trunk/wp-includes/build/scripts/core-fields/root_site/index.php
  • trunk/wp-includes/build/scripts/core-fields/root_site/site_icon
  • trunk/wp-includes/build/scripts/core-fields/root_site/site_icon/field.php
  • trunk/wp-includes/build/scripts/core-fields/root_site/site_logo
  • trunk/wp-includes/build/scripts/core-fields/root_site/site_logo/field.php
  • trunk/wp-includes/build/scripts/core-fields/root_site/title
  • trunk/wp-includes/build/scripts/core-fields/root_site/title/field.php
  • trunk/wp-includes/build/scripts/core-fields/wp_block
  • trunk/wp-includes/build/scripts/core-fields/wp_block/description
  • trunk/wp-includes/build/scripts/core-fields/wp_block/description/field.php
  • trunk/wp-includes/build/scripts/core-fields/wp_block/index.php
  • trunk/wp-includes/build/scripts/core-fields/wp_block/sync_status
  • trunk/wp-includes/build/scripts/core-fields/wp_block/sync_status/field.php
  • trunk/wp-includes/build/scripts/core-fields/wp_block/title
  • trunk/wp-includes/build/scripts/core-fields/wp_block/title/field.php
  • trunk/wp-includes/build/scripts/core-fields/wp_template
  • trunk/wp-includes/build/scripts/core-fields/wp_template/author
  • trunk/wp-includes/build/scripts/core-fields/wp_template/author/field.php
  • trunk/wp-includes/build/scripts/core-fields/wp_template/default_comment_status
  • trunk/wp-includes/build/scripts/core-fields/wp_template/default_comment_status/field.php
  • trunk/wp-includes/build/scripts/core-fields/wp_template/description
  • trunk/wp-includes/build/scripts/core-fields/wp_template/description/field.php
  • trunk/wp-includes/build/scripts/core-fields/wp_template/description_readonly
  • trunk/wp-includes/build/scripts/core-fields/wp_template/description_readonly/field.php
  • trunk/wp-includes/build/scripts/core-fields/wp_template/index.php
  • trunk/wp-includes/build/scripts/core-fields/wp_template/posts_page_title
  • trunk/wp-includes/build/scripts/core-fields/wp_template/posts_page_title/field.php
  • trunk/wp-includes/build/scripts/core-fields/wp_template/posts_per_page
  • trunk/wp-includes/build/scripts/core-fields/wp_template/posts_per_page/field.php
  • trunk/wp-includes/build/scripts/core-fields/wp_template/title
  • trunk/wp-includes/build/scripts/core-fields/wp_template/title/field.php
  • trunk/wp-includes/build/scripts/core-fields/wp_template_part
  • trunk/wp-includes/build/scripts/core-fields/wp_template_part/author
  • trunk/wp-includes/build/scripts/core-fields/wp_template_part/author/field.php
  • trunk/wp-includes/build/scripts/core-fields/wp_template_part/index.php
  • trunk/wp-includes/build/scripts/core-fields/wp_template_part/title
  • trunk/wp-includes/build/scripts/core-fields/wp_template_part/title/field.php
  • trunk/wp-includes/css/dist/block-editor/content-rtl.css
  • trunk/wp-includes/css/dist/block-editor/content-rtl.min.css
  • trunk/wp-includes/css/dist/block-editor/content.css
  • trunk/wp-includes/css/dist/block-editor/content.min.css
  • trunk/wp-includes/css/dist/block-editor/style-rtl.css
  • trunk/wp-includes/css/dist/block-editor/style-rtl.min.css
  • trunk/wp-includes/css/dist/block-editor/style.css
  • trunk/wp-includes/css/dist/block-editor/style.min.css
  • trunk/wp-includes/css/dist/block-library/common-rtl.css
  • trunk/wp-includes/css/dist/block-library/common-rtl.min.css
  • trunk/wp-includes/css/dist/block-library/common.css
  • trunk/wp-includes/css/dist/block-library/common.min.css
  • trunk/wp-includes/css/dist/block-library/editor-rtl.css
  • trunk/wp-includes/css/dist/block-library/editor-rtl.min.css
  • trunk/wp-includes/css/dist/block-library/editor.css
  • trunk/wp-includes/css/dist/block-library/editor.min.css
  • trunk/wp-includes/css/dist/block-library/style-rtl.css
  • trunk/wp-includes/css/dist/block-library/style-rtl.min.css
  • trunk/wp-includes/css/dist/block-library/style.css
  • trunk/wp-includes/css/dist/block-library/style.min.css
  • trunk/wp-includes/css/dist/components/style-rtl.css
  • trunk/wp-includes/css/dist/components/style-rtl.min.css
  • trunk/wp-includes/css/dist/components/style.css
  • trunk/wp-includes/css/dist/components/style.min.css
  • trunk/wp-includes/css/dist/edit-site/style-rtl.css
  • trunk/wp-includes/css/dist/edit-site/style-rtl.min.css
  • trunk/wp-includes/css/dist/edit-site/style.css
  • trunk/wp-includes/css/dist/edit-site/style.min.css
  • trunk/wp-includes/css/dist/edit-widgets/style-rtl.css
  • trunk/wp-includes/css/dist/edit-widgets/style-rtl.min.css
  • trunk/wp-includes/css/dist/edit-widgets/style.css
  • trunk/wp-includes/css/dist/edit-widgets/style.min.css
  • trunk/wp-includes/css/dist/editor/style-rtl.css
  • trunk/wp-includes/css/dist/editor/style-rtl.min.css
  • trunk/wp-includes/css/dist/editor/style.css
  • trunk/wp-includes/css/dist/editor/style.min.css
  • trunk/wp-includes/css/dist/notices/style-rtl.css
  • trunk/wp-includes/css/dist/notices/style-rtl.min.css
  • trunk/wp-includes/css/dist/notices/style.css
  • trunk/wp-includes/css/dist/notices/style.min.css
  • trunk/wp-includes/css/dist/patterns/style-rtl.css
  • trunk/wp-includes/css/dist/patterns/style-rtl.min.css
  • trunk/wp-includes/css/dist/patterns/style.css
  • trunk/wp-includes/css/dist/patterns/style.min.css
  • trunk/wp-includes/images/icon-library/tag.svg
  • trunk/wp-includes/js/dist/a11y.js
  • trunk/wp-includes/js/dist/a11y.min.js
  • trunk/wp-includes/js/dist/api-fetch.js
  • trunk/wp-includes/js/dist/api-fetch.min.js
  • trunk/wp-includes/js/dist/block-directory.js
  • trunk/wp-includes/js/dist/block-directory.min.js
  • trunk/wp-includes/js/dist/block-editor.js
  • trunk/wp-includes/js/dist/block-editor.min.js
  • trunk/wp-includes/js/dist/block-library.js
  • trunk/wp-includes/js/dist/block-library.min.js
  • trunk/wp-includes/js/dist/blocks.js
  • trunk/wp-includes/js/dist/blocks.min.js
  • trunk/wp-includes/js/dist/commands.js
  • trunk/wp-includes/js/dist/commands.min.js
  • trunk/wp-includes/js/dist/components.js
  • trunk/wp-includes/js/dist/components.min.js
  • trunk/wp-includes/js/dist/compose.js
  • trunk/wp-includes/js/dist/compose.min.js
  • trunk/wp-includes/js/dist/core-data.js
  • trunk/wp-includes/js/dist/core-data.min.js
  • trunk/wp-includes/js/dist/customize-widgets.js
  • trunk/wp-includes/js/dist/customize-widgets.min.js
  • trunk/wp-includes/js/dist/date.js
  • trunk/wp-includes/js/dist/dom.js
  • trunk/wp-includes/js/dist/dom.min.js
  • trunk/wp-includes/js/dist/edit-post.js
  • trunk/wp-includes/js/dist/edit-post.min.js
  • trunk/wp-includes/js/dist/edit-site.js
  • trunk/wp-includes/js/dist/edit-site.min.js
  • trunk/wp-includes/js/dist/edit-widgets.js
  • trunk/wp-includes/js/dist/edit-widgets.min.js
  • trunk/wp-includes/js/dist/editor.js
  • trunk/wp-includes/js/dist/editor.min.js
  • trunk/wp-includes/js/dist/format-library.js
  • trunk/wp-includes/js/dist/format-library.min.js
  • trunk/wp-includes/js/dist/media-utils.js
  • trunk/wp-includes/js/dist/media-utils.min.js
  • trunk/wp-includes/js/dist/notices.js
  • trunk/wp-includes/js/dist/notices.min.js
  • trunk/wp-includes/js/dist/patterns.js
  • trunk/wp-includes/js/dist/patterns.min.js
  • trunk/wp-includes/js/dist/preferences-persistence.js
  • trunk/wp-includes/js/dist/preferences-persistence.min.js
  • trunk/wp-includes/js/dist/private-apis.js
  • trunk/wp-includes/js/dist/private-apis.min.js
  • trunk/wp-includes/js/dist/rich-text.js
  • trunk/wp-includes/js/dist/rich-text.min.js
  • trunk/wp-includes/js/dist/script-modules/a11y/index.js
  • trunk/wp-includes/js/dist/script-modules/a11y/index.min.asset.php
  • trunk/wp-includes/js/dist/script-modules/a11y/index.min.js
  • trunk/wp-includes/js/dist/script-modules/block-library/cover/view.js
  • trunk/wp-includes/js/dist/script-modules/block-library/cover/view.min.asset.php
  • trunk/wp-includes/js/dist/script-modules/block-library/cover/view.min.js
  • trunk/wp-includes/js/dist/script-modules/block-library/image/view.js
  • trunk/wp-includes/js/dist/script-modules/block-library/image/view.min.asset.php
  • trunk/wp-includes/js/dist/script-modules/block-library/image/view.min.js
  • trunk/wp-includes/js/dist/script-modules/block-library/video
  • trunk/wp-includes/js/dist/script-modules/block-library/video/view.js
  • trunk/wp-includes/js/dist/script-modules/block-library/video/view.min.asset.php
  • trunk/wp-includes/js/dist/script-modules/block-library/video/view.min.js
  • trunk/wp-includes/js/dist/script-modules/boot/index.js
  • trunk/wp-includes/js/dist/script-modules/boot/index.min.asset.php
  • trunk/wp-includes/js/dist/script-modules/boot/index.min.js
  • trunk/wp-includes/js/dist/script-modules/core-actions
  • trunk/wp-includes/js/dist/script-modules/core-actions/page.js
  • trunk/wp-includes/js/dist/script-modules/core-actions/page.min.asset.php
  • trunk/wp-includes/js/dist/script-modules/core-actions/page.min.js
  • trunk/wp-includes/js/dist/script-modules/core-actions/post_type_supports.js
  • trunk/wp-includes/js/dist/script-modules/core-actions/post_type_supports.min.asset.php
  • trunk/wp-includes/js/dist/script-modules/core-actions/post_type_supports.min.js
  • trunk/wp-includes/js/dist/script-modules/core-actions/wp_block.js
  • trunk/wp-includes/js/dist/script-modules/core-actions/wp_block.min.asset.php
  • trunk/wp-includes/js/dist/script-modules/core-actions/wp_block.min.js
  • trunk/wp-includes/js/dist/script-modules/core-actions/wp_template_part.js
  • trunk/wp-includes/js/dist/script-modules/core-actions/wp_template_part.min.asset.php
  • trunk/wp-includes/js/dist/script-modules/core-actions/wp_template_part.min.js
  • trunk/wp-includes/js/dist/script-modules/core-fields
  • trunk/wp-includes/js/dist/script-modules/core-fields/attachment.js
  • trunk/wp-includes/js/dist/script-modules/core-fields/attachment.min.asset.php
  • trunk/wp-includes/js/dist/script-modules/core-fields/attachment.min.js
  • trunk/wp-includes/js/dist/script-modules/core-fields/page.js
  • trunk/wp-includes/js/dist/script-modules/core-fields/page.min.asset.php
  • trunk/wp-includes/js/dist/script-modules/core-fields/page.min.js
  • trunk/wp-includes/js/dist/script-modules/core-fields/post_type_supports.js
  • trunk/wp-includes/js/dist/script-modules/core-fields/post_type_supports.min.asset.php
  • trunk/wp-includes/js/dist/script-modules/core-fields/post_type_supports.min.js
  • trunk/wp-includes/js/dist/script-modules/core-fields/root_site.js
  • trunk/wp-includes/js/dist/script-modules/core-fields/root_site.min.asset.php
  • trunk/wp-includes/js/dist/script-modules/core-fields/root_site.min.js
  • trunk/wp-includes/js/dist/script-modules/core-fields/wp_block.js
  • trunk/wp-includes/js/dist/script-modules/core-fields/wp_block.min.asset.php
  • trunk/wp-includes/js/dist/script-modules/core-fields/wp_block.min.js
  • trunk/wp-includes/js/dist/script-modules/core-fields/wp_template.js
  • trunk/wp-includes/js/dist/script-modules/core-fields/wp_template.min.asset.php
  • trunk/wp-includes/js/dist/script-modules/core-fields/wp_template.min.js
  • trunk/wp-includes/js/dist/script-modules/core-fields/wp_template_part.js
  • trunk/wp-includes/js/dist/script-modules/core-fields/wp_template_part.min.asset.php
  • trunk/wp-includes/js/dist/script-modules/core-fields/wp_template_part.min.js
  • trunk/wp-includes/js/dist/script-modules/interactivity/index.js
  • trunk/wp-includes/js/dist/script-modules/interactivity/index.min.asset.php
  • trunk/wp-includes/js/dist/script-modules/interactivity/index.min.js
  • trunk/wp-includes/js/dist/script-modules/lazy-editor/index.js
  • trunk/wp-includes/js/dist/script-modules/lazy-editor/index.min.asset.php
  • trunk/wp-includes/js/dist/script-modules/lazy-editor/index.min.js
  • trunk/wp-includes/js/dist/script-modules/registry.php
  • trunk/wp-includes/js/dist/script-modules/route/index.js
  • trunk/wp-includes/js/dist/script-modules/vips/worker.min.asset.php
  • trunk/wp-includes/js/dist/script-modules/vips/worker.min.js
  • trunk/wp-includes/js/dist/script-modules/workflow/index.js
  • trunk/wp-includes/js/dist/script-modules/workflow/index.min.asset.php
  • trunk/wp-includes/js/dist/script-modules/workflow/index.min.js
  • trunk/wp-includes/js/dist/server-side-render.min.js
  • trunk/wp-includes/js/dist/style-engine.js
  • trunk/wp-includes/js/dist/style-engine.min.js
  • trunk/wp-includes/js/dist/upload-media.js
  • trunk/wp-includes/js/dist/upload-media.min.js
  • trunk/wp-includes/js/dist/url.js
  • trunk/wp-includes/js/dist/url.min.js
  • trunk/wp-includes/js/dist/widgets.js
  • trunk/wp-includes/js/dist/widgets.min.js
  • trunk/wp-includes/version.php

General: Bump the pinned hash for Gutenberg to be6a50be6.

This updates the pinned commit hash of the Gutenberg repository from
7b95ee96b54de2e35886971ccf7eb449c324c830 (version 24.2.0) to
be6a50be6834e922b9db12c75c9a2cd817b2db59.

The new hash is the tip of the wp/7.2 branch rather than a release tag. It
covers the 24.3.0 RC1 release plus the changes cherry-picked to the branch
after it was tagged: Gutenberg PRs 85155, 82730, 71634, and 81644.

A full list of changes included in this commit can be found on GitHub:
โ€‹https://github.com/WordPress/gutenberg/compare/7b95ee96b54de2e35886971ccf7eb449c324c830...be6a50be6834e922b9db12c75c9a2cd817b2db59

Props mamaduka, jorgefilipecosta.
See #66340
Built from โ€‹https://develop.svn.wordpress.org/trunk@64599

12:28 Changeset [63748] by Mamaduka
  • trunk/wp-includes/class-wp-theme-json.php
  • trunk/wp-includes/version.php

Editor: Add pseudo-selector support for select elements.

Adds :hover, :focus, :focus-visible, and :active to the pseudo selectors that WP_Theme_JSON allows for the select element, so themes can style these states in theme.json.

Developed in โ€‹https://github.com/WordPress/wordpress-develop/pull/14544.
Discussed in โ€‹https://github.com/WordPress/gutenberg/pull/81644.

Props onemaggie, mikachan, mamaduka.
Fixes #66349.
Built from โ€‹https://develop.svn.wordpress.org/trunk@64598

11:52 Changeset [63747] by mikachan
  • trunk/wp-includes/class-wp-theme-json.php
  • trunk/wp-includes/version.php

Editor: Add pseudo-selector support for text inputs.

Adds :required, :user-valid, :user-invalid, :focus, :focus-visible, and ::placeholder to the pseudo selectors that WP_Theme_JSON allows for the textInput element, so themes can style these states in theme.json.

Developed in โ€‹https://github.com/WordPress/wordpress-develop/pull/13056.
Discussed in โ€‹https://github.com/WordPress/gutenberg/pull/71634.

Props onemaggie, scruffian, sarthaknagoshe2002, wildworks, im3dabasia1, audrasjb, mamaduka.
Fixes #65880.
Built from โ€‹https://develop.svn.wordpress.org/trunk@64597

11:37 Changeset [63746] by jorgefilipecosta
  • trunk/wp-includes/version.php

Tests: Port Gutenberg tests for REST action links and view configs.

Adds the Gutenberg PHPUnit tests that have no Core counterpart yet, for code Core already has:

  • The action-trash link is absent in the view context and when the user cannot delete the post.
  • The action-set-homepage and action-set-posts-page links of pages in a collection are compacted as wp:action-set-homepage and wp:action-set-posts-page, the keys the core actions read.
  • The view config schema describes the table column styles.

Developed in: โ€‹https://github.com/WordPress/wordpress-develop/pull/14518

Props jorgefilipecosta.
See #63670, #66327, #65981.
Built from โ€‹https://develop.svn.wordpress.org/trunk@64596

11:10 Changeset [63745] by jorgefilipecosta
  • trunk/wp-includes/entity-actions.php
  • trunk/wp-includes/entity-fields.php
  • trunk/wp-includes/version.php

Editor: Preload the entity fields and actions the editors read.

The editors read the fields and actions of the post types they show from the wp/v2/entity-fields and wp/v2/entity-actions routes. Core preloaded the fields only in the site editor and the actions only in the post editor.
The post editor now also preloads the entity fields of the edited post type, which the post summary of its inspector reads. The site editor now also preloads the entity actions of the edited post and of the post types its screen lists (pages, templates, patterns and template parts), as it already did for the entity fields.

Developed in โ€‹https://github.com/WordPress/wordpress-develop/pull/14516.
Synced from โ€‹https://github.com/WordPress/gutenberg/pull/85081 and โ€‹https://github.com/WordPress/gutenberg/pull/85155.
Follow-up to [64528], [64566].

Props jorgefilipecosta, oandregal.
See #66343.
Built from โ€‹https://develop.svn.wordpress.org/trunk@64595

10:08 Changeset [63744] by gziolo
  • trunk/wp-includes/json-schema.php
  • trunk/wp-includes/version.php

JSON Schema: Prepare default values according to their schemas

Use wp_prepare_json_value_for_client() to normalize existing schema defaults, preserving empty objects within nested values and resolving matching anyOf and oneOf branches. Defaults remain arrays when a matching schema allows arrays.

Add regression coverage for nested defaults and clarify the schema and value preparation PHPDoc.

Follow-up to [64592], [64315].
Developed in โ€‹https://github.com/WordPress/wordpress-develop/pull/14542.

Fix #66267.

Built from โ€‹https://develop.svn.wordpress.org/trunk@64594

10:04 Changeset [63743] by audrasjb
  • trunk/wp-admin/css/dashboard-rtl.css
  • trunk/wp-admin/css/dashboard-rtl.min.css
  • trunk/wp-admin/css/dashboard.css
  • trunk/wp-admin/css/dashboard.min.css
  • trunk/wp-admin/includes/dashboard.php
  • trunk/wp-admin/index.php
  • trunk/wp-includes/version.php

Administration: Add a โ€On This Dayโ€ section to the Activity widget

This changeset adds a โ€On This Dayโ€ section to the Activity widget and moves the Recent Comments section into a dedicated dashboard widget.

Developed in โ€‹https://github.com/WordPress/wordpress-develop/pull/14038.

Props alshakero, eclev91, annezazu, matt, westonruter, kellychoffman, simison, joen, retrofox, audrasjb, desrosj, joedolson, wildworks, mukesh27, SergeyBiryukov, peterwilsoncc, sukhendu2002, muryam.
Fixes #65116.

Built from โ€‹https://develop.svn.wordpress.org/trunk@64593

09:10 Changeset [63742] by gziolo
  • trunk/wp-includes/ai-client/class-wp-ai-client-ability-function-resolver.php
  • trunk/wp-includes/json-schema.php
  • trunk/wp-includes/rest-api/endpoints/class-wp-rest-abilities-v1-run-controller.php
  • trunk/wp-includes/version.php

Abilities API: Preserve empty objects in JSON results

Empty PHP arrays representing objects are incorrectly encoded as []
instead of {}. Add wp_prepare_json_value_for_client() to prepare ability
results according to their output schemas before JSON encoding.

Apply it to AI client results and associative REST results, preserving
compatibility with _fields and _embed processing.

Props sukhendu2002, gziolo.
See #66267.

Built from โ€‹https://develop.svn.wordpress.org/trunk@64592

06:26 Changeset [63741] by aaronrobertshaw
  • trunk/wp-includes/block-supports/states.php
  • trunk/wp-includes/version.php

Editor: Scope state rules to the block's own element.

Per-instance state styles never applied to a block whose root selector starts with another block's class. List Item registers .wp-block-list > li, so scoping swapped .wp-block-list for the instance class and produced .wp-states-xxxx > li, which matches nothing because the instance class sits on the li itself.

A new wp_get_state_selector_ancestor() returns the leading compound and its combinator when that compound names a different block, and wp_build_state_selector() gains a $block_name parameter so the ancestor is kept and the instance class lands on the block's own compound, giving .wp-block-list > .wp-states-xxxx. Selectors for nested elements, such as .wp-block-button .wp-block-button__link, keep their existing behavior.

This brings in changes from โ€‹https://github.com/WordPress/gutenberg/pull/83986.

Developed in: โ€‹https://github.com/WordPress/wordpress-develop/pull/14039

Props ramonopoly, talldanwp.
Fixes #66252.

Built from โ€‹https://develop.svn.wordpress.org/trunk@64591

06:10 Changeset [63740] by aaronrobertshaw
  • trunk/wp-includes/block-supports/background.php
  • trunk/wp-includes/block-supports/colors.php
  • trunk/wp-includes/block-supports/states.php
  • trunk/wp-includes/class-wp-theme-json.php
  • trunk/wp-includes/kses.php
  • trunk/wp-includes/style-engine/class-wp-style-engine.php
  • trunk/wp-includes/version.php

Editor: Add a background clip block support.

Adds a background.backgroundClip block support, so a block can paint its background into the border box, padding box, content box or the text itself. Clipping to the text gives blocks a gradient text fill.

The style engine gains the backgroundClip definition and a VALID_BACKGROUND_CLIP_VALUES constant, WP_Theme_JSON gains the setting and style, and KSES allows background-clip and its vendor prefixed companions. A color clipped to the text no longer adds the has-background class.

Pseudo states and breakpoints that change the clip, or set a text color over a text gradient, now escape the inherited text clip, in both block instance styles and global styles.

This brings in changes from โ€‹https://github.com/WordPress/gutenberg/pull/77141, โ€‹https://github.com/WordPress/gutenberg/pull/77142 and โ€‹https://github.com/WordPress/gutenberg/pull/85057.

Developed in: โ€‹https://github.com/WordPress/wordpress-develop/pull/13491

Props westonruter, isabel_brison, andrewserong, peterwilsoncc, ramonopoly, scruffian, joen, talldanwp.
Fixes #66094.

Built from โ€‹https://develop.svn.wordpress.org/trunk@64590

05:50 Changeset [63739] by westonruter
  • trunk/wp-includes/post.php
  • trunk/wp-includes/version.php

Posts, Post Types: Add pre_wp_count_attachments filter.

Introduces the pre_wp_count_attachments filter to wp_count_attachments(), the counterpart of pre_wp_count_posts. Returning a stdClass object short-circuits the function, skipping the object cache lookup and both of its queries. Since the counts cache group is non-persistent, those queries otherwise run on every request that needs the counts, and on a site with millions of attachments the GROUP BY post_mime_type aggregate alone can take several seconds. The filter allows the counts to be served instead from a value pre-computed in the background.

Unlike post statuses, the set of MIME types is not known ahead of time, so only a missing trash count is filled in with zero. The filtered value should therefore contain a count for every MIME type matching $mime_type, and only those types. As with pre_wp_count_posts, the value is not cached and is passed through the wp_count_attachments filter.

The pre_wp_count_posts filter introduced in r64245 is brought in line with the new one. A filtered value now short-circuits only when it is a stdClass object: any other non-null value was previously cast to an object, turning false into a nonsensical result, and filling in missing counts on another class can trigger a dynamic property deprecation. Both filters also clone the returned object, so that a callback which keeps it, such as in a static variable, does not have it modified by core or by later callbacks on the wp_count_posts and wp_count_attachments filters.

Developed in โ€‹https://github.com/WordPress/wordpress-develop/pull/14210.
Follow-up to r64245.

Props jdeep, westonruter, peterwilsoncc.
See #66098.
Fixes #66291.

Built from โ€‹https://develop.svn.wordpress.org/trunk@64589

05:03 Changeset [63738] by adamsilverstein
  • trunk/wp-admin/js/media-frame-upload.js
  • trunk/wp-admin/js/media-frame-upload.min.js
  • trunk/wp-admin/js/media-new-upload.js
  • trunk/wp-admin/js/media-new-upload.min.js
  • trunk/wp-admin/js/media-upload-pipeline.js
  • trunk/wp-admin/js/media-upload-pipeline.min.js
  • trunk/wp-admin/media-new.php
  • trunk/wp-includes/default-filters.php
  • trunk/wp-includes/functions.php
  • trunk/wp-includes/media.php
  • trunk/wp-includes/rest-api/class-wp-rest-server.php
  • trunk/wp-includes/script-loader.php
  • trunk/wp-includes/version.php

Media: Enable client-side uploads in the Media Library and modal.

Enable client-side media processing for Uploads from the Media Library grid, the Add New Media File screen and the media modal in the block editor (in supported browsers).

These screens now use the same pipeline as block editor uploads: the original is uploaded through the REST API, sub-sizes are generated in the browser and sideloaded, then the attachment is finalized. wp_set_up_cross_origin_isolation() now also isolates the Media Library grid and the Add New Media File screen using Document Isolation Policy. Uploads huse the client-side processing still use the existing progress, tile and error UI.

When client-side processing is disabled, uploads fall back to the classic flow unchanged. Audio files, uploaders that do not post attachments, and JPEG/PNG files while plupload resizing is enabled also stay on the classic path, and a HEIC the browser cannot decode is handed to the server when its image editor supports HEIC. The Customizer, Site Icon picker and classic editor are not isolated and keep classic uploads.

See โ€‹https://github.com/WordPress/gutenberg/issues/82409.

Props adamsilverstein, westonruter, andrewserong, sanayasir, arkaprabhachowdhury, logicrays.
Fixes #65661. See #66220.

Built from โ€‹https://develop.svn.wordpress.org/trunk@64588

03:52 Changeset [63737] by peterwilsoncc
  • trunk/wp-admin/includes/update-core.php
  • trunk/wp-includes/assets/icon-library-manifest.php
  • trunk/wp-includes/assets/script-loader-packages.php
  • trunk/wp-includes/assets/script-modules-packages.php
  • trunk/wp-includes/blocks/accordion-heading/block.json
  • trunk/wp-includes/blocks/archives/block.json
  • trunk/wp-includes/blocks/avatar.php
  • trunk/wp-includes/blocks/avatar/block.json
  • trunk/wp-includes/blocks/avatar/editor-rtl.css
  • trunk/wp-includes/blocks/avatar/editor-rtl.min.css
  • trunk/wp-includes/blocks/avatar/editor.css
  • trunk/wp-includes/blocks/avatar/editor.min.css
  • trunk/wp-includes/blocks/blocks-json.php
  • trunk/wp-includes/blocks/breadcrumbs.php
  • trunk/wp-includes/blocks/button.php
  • trunk/wp-includes/blocks/button/block.json
  • trunk/wp-includes/blocks/buttons/block.json
  • trunk/wp-includes/blocks/code/block.json
  • trunk/wp-includes/blocks/columns/block.json
  • trunk/wp-includes/blocks/comments-pagination/block.json
  • trunk/wp-includes/blocks/comments-pagination/style-rtl.css
  • trunk/wp-includes/blocks/comments-pagination/style-rtl.min.css
  • trunk/wp-includes/blocks/comments-pagination/style.css
  • trunk/wp-includes/blocks/comments-pagination/style.min.css
  • trunk/wp-includes/blocks/cover.php
  • trunk/wp-includes/blocks/cover/block.json
  • trunk/wp-includes/blocks/details/block.json
  • trunk/wp-includes/blocks/embed/block.json
  • trunk/wp-includes/blocks/embed/style-rtl.css
  • trunk/wp-includes/blocks/embed/style-rtl.min.css
  • trunk/wp-includes/blocks/embed/style.css
  • trunk/wp-includes/blocks/embed/style.min.css
  • trunk/wp-includes/blocks/file/block.json
  • trunk/wp-includes/blocks/footnotes/block.json
  • trunk/wp-includes/blocks/gallery/block.json
  • trunk/wp-includes/blocks/gallery/editor-rtl.css
  • trunk/wp-includes/blocks/gallery/editor-rtl.min.css
  • trunk/wp-includes/blocks/gallery/editor.css
  • trunk/wp-includes/blocks/gallery/editor.min.css
  • trunk/wp-includes/blocks/heading/block.json
  • trunk/wp-includes/blocks/home-link/block.json
  • trunk/wp-includes/blocks/icon.php
  • trunk/wp-includes/blocks/image.php
  • trunk/wp-includes/blocks/image/style-rtl.css
  • trunk/wp-includes/blocks/image/style-rtl.min.css
  • trunk/wp-includes/blocks/image/style.css
  • trunk/wp-includes/blocks/image/style.min.css
  • trunk/wp-includes/blocks/latest-comments/block.json
  • trunk/wp-includes/blocks/latest-posts/block.json
  • trunk/wp-includes/blocks/list-item/block.json
  • trunk/wp-includes/blocks/list/block.json
  • trunk/wp-includes/blocks/loginout/block.json
  • trunk/wp-includes/blocks/math/block.json
  • trunk/wp-includes/blocks/media-text/block.json
  • trunk/wp-includes/blocks/media-text/style-rtl.css
  • trunk/wp-includes/blocks/media-text/style-rtl.min.css
  • trunk/wp-includes/blocks/media-text/style.css
  • trunk/wp-includes/blocks/media-text/style.min.css
  • trunk/wp-includes/blocks/page-list/block.json
  • trunk/wp-includes/blocks/paragraph/block.json
  • trunk/wp-includes/blocks/post-author-biography/block.json
  • trunk/wp-includes/blocks/post-comments-form/block.json
  • trunk/wp-includes/blocks/post-content/block.json
  • trunk/wp-includes/blocks/post-excerpt/block.json
  • trunk/wp-includes/blocks/post-featured-image/block.json
  • trunk/wp-includes/blocks/post-terms/block.json
  • trunk/wp-includes/blocks/post-time-to-read/block.json
  • trunk/wp-includes/blocks/post-title/block.json
  • trunk/wp-includes/blocks/preformatted/block.json
  • trunk/wp-includes/blocks/pullquote/block.json
  • trunk/wp-includes/blocks/query-no-results/block.json
  • trunk/wp-includes/blocks/query-pagination/block.json
  • trunk/wp-includes/blocks/query-pagination/style-rtl.css
  • trunk/wp-includes/blocks/query-pagination/style-rtl.min.css
  • trunk/wp-includes/blocks/query-pagination/style.css
  • trunk/wp-includes/blocks/query-pagination/style.min.css
  • trunk/wp-includes/blocks/query-total/block.json
  • trunk/wp-includes/blocks/quote/block.json
  • trunk/wp-includes/blocks/read-more/block.json
  • trunk/wp-includes/blocks/rss/block.json
  • trunk/wp-includes/blocks/search/block.json
  • trunk/wp-includes/blocks/site-tagline/block.json
  • trunk/wp-includes/blocks/site-title/block.json
  • trunk/wp-includes/blocks/social-links/block.json
  • trunk/wp-includes/blocks/tab-list/block.json
  • trunk/wp-includes/blocks/tab-panels/block.json
  • trunk/wp-includes/blocks/table/editor-rtl.css
  • trunk/wp-includes/blocks/table/editor-rtl.min.css
  • trunk/wp-includes/blocks/table/editor.css
  • trunk/wp-includes/blocks/table/editor.min.css
  • trunk/wp-includes/blocks/table/style-rtl.css
  • trunk/wp-includes/blocks/table/style-rtl.min.css
  • trunk/wp-includes/blocks/table/style.css
  • trunk/wp-includes/blocks/table/style.min.css
  • trunk/wp-includes/blocks/tabs/block.json
  • trunk/wp-includes/blocks/tag-cloud/style-rtl.css
  • trunk/wp-includes/blocks/tag-cloud/style-rtl.min.css
  • trunk/wp-includes/blocks/tag-cloud/style.css
  • trunk/wp-includes/blocks/tag-cloud/style.min.css
  • trunk/wp-includes/blocks/template-part.php
  • trunk/wp-includes/blocks/term-count/block.json
  • trunk/wp-includes/blocks/term-description/block.json
  • trunk/wp-includes/blocks/term-name/block.json
  • trunk/wp-includes/blocks/term-template/block.json
  • trunk/wp-includes/blocks/verse/block.json
  • trunk/wp-includes/blocks/verse/style-rtl.css
  • trunk/wp-includes/blocks/verse/style-rtl.min.css
  • trunk/wp-includes/blocks/verse/style.css
  • trunk/wp-includes/blocks/verse/style.min.css
  • trunk/wp-includes/blocks/video/block.json
  • trunk/wp-includes/build/constants.php
  • trunk/wp-includes/build/routes/connectors-home/content.js
  • trunk/wp-includes/build/routes/connectors-home/content.min.asset.php
  • trunk/wp-includes/build/routes/connectors-home/content.min.js
  • trunk/wp-includes/build/routes/font-list/content.js
  • trunk/wp-includes/build/routes/font-list/content.min.asset.php
  • trunk/wp-includes/build/routes/font-list/content.min.js
  • trunk/wp-includes/css/dist/base-styles/admin-schemes-rtl.css
  • trunk/wp-includes/css/dist/base-styles/admin-schemes-rtl.min.css
  • trunk/wp-includes/css/dist/base-styles/admin-schemes.css
  • trunk/wp-includes/css/dist/base-styles/admin-schemes.min.css
  • trunk/wp-includes/css/dist/block-directory/style-rtl.css
  • trunk/wp-includes/css/dist/block-directory/style-rtl.min.css
  • trunk/wp-includes/css/dist/block-directory/style.css
  • trunk/wp-includes/css/dist/block-directory/style.min.css
  • trunk/wp-includes/css/dist/block-editor/content-rtl.css
  • trunk/wp-includes/css/dist/block-editor/content-rtl.min.css
  • trunk/wp-includes/css/dist/block-editor/content.css
  • trunk/wp-includes/css/dist/block-editor/content.min.css
  • trunk/wp-includes/css/dist/block-editor/style-rtl.css
  • trunk/wp-includes/css/dist/block-editor/style-rtl.min.css
  • trunk/wp-includes/css/dist/block-editor/style.css
  • trunk/wp-includes/css/dist/block-editor/style.min.css
  • trunk/wp-includes/css/dist/block-library/common-rtl.css
  • trunk/wp-includes/css/dist/block-library/common-rtl.min.css
  • trunk/wp-includes/css/dist/block-library/common.css
  • trunk/wp-includes/css/dist/block-library/common.min.css
  • trunk/wp-includes/css/dist/block-library/editor-rtl.css
  • trunk/wp-includes/css/dist/block-library/editor-rtl.min.css
  • trunk/wp-includes/css/dist/block-library/editor.css
  • trunk/wp-includes/css/dist/block-library/editor.min.css
  • trunk/wp-includes/css/dist/block-library/style-rtl.css
  • trunk/wp-includes/css/dist/block-library/style-rtl.min.css
  • trunk/wp-includes/css/dist/block-library/style.css
  • trunk/wp-includes/css/dist/block-library/style.min.css
  • trunk/wp-includes/css/dist/commands/style-rtl.css
  • trunk/wp-includes/css/dist/commands/style-rtl.min.css
  • trunk/wp-includes/css/dist/commands/style.css
  • trunk/wp-includes/css/dist/commands/style.min.css
  • trunk/wp-includes/css/dist/components/style-rtl.css
  • trunk/wp-includes/css/dist/components/style-rtl.min.css
  • trunk/wp-includes/css/dist/components/style.css
  • trunk/wp-includes/css/dist/components/style.min.css
  • trunk/wp-includes/css/dist/customize-widgets/style-rtl.css
  • trunk/wp-includes/css/dist/customize-widgets/style-rtl.min.css
  • trunk/wp-includes/css/dist/customize-widgets/style.css
  • trunk/wp-includes/css/dist/customize-widgets/style.min.css
  • trunk/wp-includes/css/dist/edit-post/style-rtl.css
  • trunk/wp-includes/css/dist/edit-post/style-rtl.min.css
  • trunk/wp-includes/css/dist/edit-post/style.css
  • trunk/wp-includes/css/dist/edit-post/style.min.css
  • trunk/wp-includes/css/dist/edit-site/style-rtl.css
  • trunk/wp-includes/css/dist/edit-site/style-rtl.min.css
  • trunk/wp-includes/css/dist/edit-site/style.css
  • trunk/wp-includes/css/dist/edit-site/style.min.css
  • trunk/wp-includes/css/dist/edit-widgets/style-rtl.css
  • trunk/wp-includes/css/dist/edit-widgets/style-rtl.min.css
  • trunk/wp-includes/css/dist/edit-widgets/style.css
  • trunk/wp-includes/css/dist/edit-widgets/style.min.css
  • trunk/wp-includes/css/dist/editor/style-rtl.css
  • trunk/wp-includes/css/dist/editor/style-rtl.min.css
  • trunk/wp-includes/css/dist/editor/style.css
  • trunk/wp-includes/css/dist/editor/style.min.css
  • trunk/wp-includes/css/dist/media-utils/style-rtl.css
  • trunk/wp-includes/css/dist/media-utils/style-rtl.min.css
  • trunk/wp-includes/css/dist/media-utils/style.css
  • trunk/wp-includes/css/dist/media-utils/style.min.css
  • trunk/wp-includes/css/dist/patterns/style-rtl.css
  • trunk/wp-includes/css/dist/patterns/style-rtl.min.css
  • trunk/wp-includes/css/dist/patterns/style.css
  • trunk/wp-includes/css/dist/patterns/style.min.css
  • trunk/wp-includes/css/dist/registry.php
  • trunk/wp-includes/css/dist/theme/design-tokens-rtl.css
  • trunk/wp-includes/css/dist/theme/design-tokens-rtl.min.css
  • trunk/wp-includes/css/dist/theme/design-tokens.css
  • trunk/wp-includes/css/dist/theme/design-tokens.min.css
  • trunk/wp-includes/css/dist/widgets/style-rtl.css
  • trunk/wp-includes/css/dist/widgets/style-rtl.min.css
  • trunk/wp-includes/css/dist/widgets/style.css
  • trunk/wp-includes/css/dist/widgets/style.min.css
  • trunk/wp-includes/images/icon-library/arrow-down-left.svg
  • trunk/wp-includes/images/icon-library/arrow-down-right.svg
  • trunk/wp-includes/images/icon-library/arrow-down.svg
  • trunk/wp-includes/images/icon-library/arrow-left.svg
  • trunk/wp-includes/images/icon-library/arrow-right.svg
  • trunk/wp-includes/images/icon-library/arrow-up-left.svg
  • trunk/wp-includes/images/icon-library/arrow-up-right.svg
  • trunk/wp-includes/images/icon-library/arrow-up.svg
  • trunk/wp-includes/images/icon-library/at-symbol.svg
  • trunk/wp-includes/images/icon-library/audio.svg
  • trunk/wp-includes/images/icon-library/bell.svg
  • trunk/wp-includes/images/icon-library/block-default.svg
  • trunk/wp-includes/images/icon-library/block-meta.svg
  • trunk/wp-includes/images/icon-library/block-table.svg
  • trunk/wp-includes/images/icon-library/brush.svg
  • trunk/wp-includes/images/icon-library/calendar.svg
  • trunk/wp-includes/images/icon-library/capture-photo.svg
  • trunk/wp-includes/images/icon-library/capture-video.svg
  • trunk/wp-includes/images/icon-library/cart.svg
  • trunk/wp-includes/images/icon-library/category.svg
  • trunk/wp-includes/images/icon-library/caution.svg
  • trunk/wp-includes/images/icon-library/chart-bar.svg
  • trunk/wp-includes/images/icon-library/check.svg
  • trunk/wp-includes/images/icon-library/chevron-down-small.svg
  • trunk/wp-includes/images/icon-library/chevron-down.svg
  • trunk/wp-includes/images/icon-library/chevron-left-small.svg
  • trunk/wp-includes/images/icon-library/chevron-left.svg
  • trunk/wp-includes/images/icon-library/chevron-right-small.svg
  • trunk/wp-includes/images/icon-library/chevron-right.svg
  • trunk/wp-includes/images/icon-library/chevron-up-down.svg
  • trunk/wp-includes/images/icon-library/chevron-up-small.svg
  • trunk/wp-includes/images/icon-library/chevron-up.svg
  • trunk/wp-includes/images/icon-library/comment.svg
  • trunk/wp-includes/images/icon-library/cover.svg
  • trunk/wp-includes/images/icon-library/create.svg
  • trunk/wp-includes/images/icon-library/dashboard.svg
  • trunk/wp-includes/images/icon-library/desktop.svg
  • trunk/wp-includes/images/icon-library/download.svg
  • trunk/wp-includes/images/icon-library/drawer-left.svg
  • trunk/wp-includes/images/icon-library/drawer-right.svg
  • trunk/wp-includes/images/icon-library/envelope.svg
  • trunk/wp-includes/images/icon-library/error.svg
  • trunk/wp-includes/images/icon-library/external.svg
  • trunk/wp-includes/images/icon-library/file.svg
  • trunk/wp-includes/images/icon-library/gallery.svg
  • trunk/wp-includes/images/icon-library/group.svg
  • trunk/wp-includes/images/icon-library/heading.svg
  • trunk/wp-includes/images/icon-library/help.svg
  • trunk/wp-includes/images/icon-library/home.svg
  • trunk/wp-includes/images/icon-library/image.svg
  • trunk/wp-includes/images/icon-library/info.svg
  • trunk/wp-includes/images/icon-library/key.svg
  • trunk/wp-includes/images/icon-library/language.svg
  • trunk/wp-includes/images/icon-library/link.svg
  • trunk/wp-includes/images/icon-library/map-marker.svg
  • trunk/wp-includes/images/icon-library/media.svg
  • trunk/wp-includes/images/icon-library/menu.svg
  • trunk/wp-includes/images/icon-library/mobile.svg
  • trunk/wp-includes/images/icon-library/more-horizontal.svg
  • trunk/wp-includes/images/icon-library/more-vertical.svg
  • trunk/wp-includes/images/icon-library/next.svg
  • trunk/wp-includes/images/icon-library/page.svg
  • trunk/wp-includes/images/icon-library/paragraph.svg
  • trunk/wp-includes/images/icon-library/payment.svg
  • trunk/wp-includes/images/icon-library/pencil.svg
  • trunk/wp-includes/images/icon-library/people.svg
  • trunk/wp-includes/images/icon-library/pin.svg
  • trunk/wp-includes/images/icon-library/plugins.svg
  • trunk/wp-includes/images/icon-library/plus-circle.svg
  • trunk/wp-includes/images/icon-library/plus.svg
  • trunk/wp-includes/images/icon-library/previous.svg
  • trunk/wp-includes/images/icon-library/published.svg
  • trunk/wp-includes/images/icon-library/quote.svg
  • trunk/wp-includes/images/icon-library/receipt.svg
  • trunk/wp-includes/images/icon-library/rss.svg
  • trunk/wp-includes/images/icon-library/scheduled.svg
  • trunk/wp-includes/images/icon-library/search.svg
  • trunk/wp-includes/images/icon-library/settings.svg
  • trunk/wp-includes/images/icon-library/shadow.svg
  • trunk/wp-includes/images/icon-library/share.svg
  • trunk/wp-includes/images/icon-library/shield.svg
  • trunk/wp-includes/images/icon-library/shuffle.svg
  • trunk/wp-includes/images/icon-library/sites.svg
  • trunk/wp-includes/images/icon-library/star-empty.svg
  • trunk/wp-includes/images/icon-library/star-filled.svg
  • trunk/wp-includes/images/icon-library/star-half.svg
  • trunk/wp-includes/images/icon-library/store.svg
  • trunk/wp-includes/images/icon-library/styles.svg
  • trunk/wp-includes/images/icon-library/symbol-filled.svg
  • trunk/wp-includes/images/icon-library/symbol.svg
  • trunk/wp-includes/images/icon-library/table.svg
  • trunk/wp-includes/images/icon-library/tablet.svg
  • trunk/wp-includes/images/icon-library/tag.svg
  • trunk/wp-includes/images/icon-library/tip.svg
  • trunk/wp-includes/images/icon-library/tool.svg
  • trunk/wp-includes/images/icon-library/update.svg
  • trunk/wp-includes/images/icon-library/upload.svg
  • trunk/wp-includes/images/icon-library/verse.svg
  • trunk/wp-includes/js/dist/a11y.js
  • trunk/wp-includes/js/dist/a11y.min.js
  • trunk/wp-includes/js/dist/annotations.js
  • trunk/wp-includes/js/dist/block-directory.js
  • trunk/wp-includes/js/dist/block-directory.min.js
  • trunk/wp-includes/js/dist/block-editor.js
  • trunk/wp-includes/js/dist/block-editor.min.js
  • trunk/wp-includes/js/dist/block-library.js
  • trunk/wp-includes/js/dist/block-library.min.js
  • trunk/wp-includes/js/dist/blocks.js
  • trunk/wp-includes/js/dist/blocks.min.js
  • trunk/wp-includes/js/dist/commands.js
  • trunk/wp-includes/js/dist/commands.min.js
  • trunk/wp-includes/js/dist/components.js
  • trunk/wp-includes/js/dist/components.min.js
  • trunk/wp-includes/js/dist/compose.js
  • trunk/wp-includes/js/dist/compose.min.js
  • trunk/wp-includes/js/dist/core-commands.js
  • trunk/wp-includes/js/dist/core-commands.min.js
  • trunk/wp-includes/js/dist/core-data.js
  • trunk/wp-includes/js/dist/core-data.min.js
  • trunk/wp-includes/js/dist/customize-widgets.js
  • trunk/wp-includes/js/dist/customize-widgets.min.js
  • trunk/wp-includes/js/dist/data.js
  • trunk/wp-includes/js/dist/date.js
  • trunk/wp-includes/js/dist/date.min.js
  • trunk/wp-includes/js/dist/edit-post.js
  • trunk/wp-includes/js/dist/edit-post.min.js
  • trunk/wp-includes/js/dist/edit-site.js
  • trunk/wp-includes/js/dist/edit-site.min.js
  • trunk/wp-includes/js/dist/edit-widgets.js
  • trunk/wp-includes/js/dist/edit-widgets.min.js
  • trunk/wp-includes/js/dist/editor.js
  • trunk/wp-includes/js/dist/editor.min.js
  • trunk/wp-includes/js/dist/element.js
  • trunk/wp-includes/js/dist/element.min.js
  • trunk/wp-includes/js/dist/format-library.js
  • trunk/wp-includes/js/dist/format-library.min.js
  • trunk/wp-includes/js/dist/i18n.js
  • trunk/wp-includes/js/dist/keyboard-shortcuts.js
  • trunk/wp-includes/js/dist/keyboard-shortcuts.min.js
  • trunk/wp-includes/js/dist/list-reusable-blocks.js
  • trunk/wp-includes/js/dist/media-utils.js
  • trunk/wp-includes/js/dist/media-utils.min.js
  • trunk/wp-includes/js/dist/notices.js
  • trunk/wp-includes/js/dist/patterns.js
  • trunk/wp-includes/js/dist/patterns.min.js
  • trunk/wp-includes/js/dist/plugins.js
  • trunk/wp-includes/js/dist/plugins.min.js
  • trunk/wp-includes/js/dist/preferences.js
  • trunk/wp-includes/js/dist/preferences.min.js
  • trunk/wp-includes/js/dist/primitives.js
  • trunk/wp-includes/js/dist/priority-queue.js
  • trunk/wp-includes/js/dist/private-apis.js
  • trunk/wp-includes/js/dist/private-apis.min.js
  • trunk/wp-includes/js/dist/redux-routine.js
  • trunk/wp-includes/js/dist/rich-text.js
  • trunk/wp-includes/js/dist/router.js
  • trunk/wp-includes/js/dist/script-modules/a11y/index.js
  • trunk/wp-includes/js/dist/script-modules/a11y/index.min.asset.php
  • trunk/wp-includes/js/dist/script-modules/a11y/index.min.js
  • trunk/wp-includes/js/dist/script-modules/abilities/index.js
  • trunk/wp-includes/js/dist/script-modules/abilities/index.min.asset.php
  • trunk/wp-includes/js/dist/script-modules/abilities/index.min.js
  • trunk/wp-includes/js/dist/script-modules/block-library/cover
  • trunk/wp-includes/js/dist/script-modules/block-library/cover/view.js
  • trunk/wp-includes/js/dist/script-modules/block-library/cover/view.min.asset.php
  • trunk/wp-includes/js/dist/script-modules/block-library/cover/view.min.js
  • trunk/wp-includes/js/dist/script-modules/block-library/image/view.js
  • trunk/wp-includes/js/dist/script-modules/block-library/image/view.min.asset.php
  • trunk/wp-includes/js/dist/script-modules/block-library/image/view.min.js
  • trunk/wp-includes/js/dist/script-modules/block-library/playlist/view.js
  • trunk/wp-includes/js/dist/script-modules/block-library/playlist/view.min.asset.php
  • trunk/wp-includes/js/dist/script-modules/block-library/playlist/view.min.js
  • trunk/wp-includes/js/dist/script-modules/boot/index.js
  • trunk/wp-includes/js/dist/script-modules/boot/index.min.asset.php
  • trunk/wp-includes/js/dist/script-modules/boot/index.min.js
  • trunk/wp-includes/js/dist/script-modules/dashboard-init/index.js
  • trunk/wp-includes/js/dist/script-modules/edit-site-init/index.js
  • trunk/wp-includes/js/dist/script-modules/edit-site-init/index.min.asset.php
  • trunk/wp-includes/js/dist/script-modules/edit-site-init/index.min.js
  • trunk/wp-includes/js/dist/script-modules/interactivity-router/index.js
  • trunk/wp-includes/js/dist/script-modules/interactivity-router/index.min.asset.php
  • trunk/wp-includes/js/dist/script-modules/interactivity-router/index.min.js
  • trunk/wp-includes/js/dist/script-modules/interactivity/index.js
  • trunk/wp-includes/js/dist/script-modules/interactivity/index.min.asset.php
  • trunk/wp-includes/js/dist/script-modules/interactivity/index.min.js
  • trunk/wp-includes/js/dist/script-modules/latex-to-mathml/index.js
  • trunk/wp-includes/js/dist/script-modules/latex-to-mathml/index.min.asset.php
  • trunk/wp-includes/js/dist/script-modules/latex-to-mathml/index.min.js
  • trunk/wp-includes/js/dist/script-modules/lazy-editor/index.js
  • trunk/wp-includes/js/dist/script-modules/lazy-editor/index.min.asset.php
  • trunk/wp-includes/js/dist/script-modules/lazy-editor/index.min.js
  • trunk/wp-includes/js/dist/script-modules/registry.php
  • trunk/wp-includes/js/dist/script-modules/route/index.js
  • trunk/wp-includes/js/dist/script-modules/video-conversion/worker.min.asset.php
  • trunk/wp-includes/js/dist/script-modules/video-conversion/worker.min.js
  • trunk/wp-includes/js/dist/script-modules/vips/worker.min.asset.php
  • trunk/wp-includes/js/dist/script-modules/vips/worker.min.js
  • trunk/wp-includes/js/dist/script-modules/widget-primitives/index.js
  • trunk/wp-includes/js/dist/script-modules/widget-primitives/index.min.asset.php
  • trunk/wp-includes/js/dist/script-modules/widget-primitives/index.min.js
  • trunk/wp-includes/js/dist/script-modules/workflow/index.js
  • trunk/wp-includes/js/dist/script-modules/workflow/index.min.asset.php
  • trunk/wp-includes/js/dist/script-modules/workflow/index.min.js
  • trunk/wp-includes/js/dist/server-side-render.js
  • trunk/wp-includes/js/dist/server-side-render.min.js
  • trunk/wp-includes/js/dist/shortcode.js
  • trunk/wp-includes/js/dist/style-engine.js
  • trunk/wp-includes/js/dist/style-engine.min.js
  • trunk/wp-includes/js/dist/sync.js
  • trunk/wp-includes/js/dist/sync.min.js
  • trunk/wp-includes/js/dist/theme.js
  • trunk/wp-includes/js/dist/theme.min.js
  • trunk/wp-includes/js/dist/upload-media.js
  • trunk/wp-includes/js/dist/url.js
  • trunk/wp-includes/js/dist/vendor/react-jsx-runtime-19.js
  • trunk/wp-includes/js/dist/vendor/react-jsx-runtime.js
  • trunk/wp-includes/js/dist/widgets.js
  • trunk/wp-includes/js/dist/widgets.min.js
  • trunk/wp-includes/version.php

General: Bump the pinned hash for Gutenberg to 7b95ee96b (24.2.0).

This updates the pinned commit hash of the Gutenberg repository from 954fe7f9e04631c41aec4552acd627a7203a2aad to 7b95ee96b54de2e35886971ccf7eb449c324c830 (version 24.2.0).

A full list of changes included in this commit can be found on GitHub: โ€‹https://github.com/WordPress/gutenberg/compare/954fe7f9e04631c41aec4552acd627a7203a2aad...7b95ee96b54de2e35886971ccf7eb449c324c830

Props mamaduka.
See #66340

Built from โ€‹https://develop.svn.wordpress.org/trunk@64587

10/19/2026:

23:41 Changeset [63736] by SergeyBiryukov
  • trunk/wp-admin/includes/class-wp-ms-themes-list-table.php
  • trunk/wp-admin/includes/class-wp-plugins-list-table.php
  • trunk/wp-admin/includes/update.php
  • trunk/wp-admin/themes.php
  • trunk/wp-includes/version.php

Upgrade/Install: Explain when automatic updates cannot run.

When automatic updates can't run, the Plugins, Themes, and Updates screens still say โ€œAutomatic update scheduled in 6 hoursโ€. The automatic updater skips the update entirely when the site is under version control or when writing files needs FTP credentials, so that scheduled update never happens.

wp_get_auto_update_message() now runs the same two checks as WP_Automatic_Updater::should_update(), against the same directory, and says why the update won't run instead. Users who can view Site Health get a link to it, since Site Health already explains both cases. On the Updates screen, the core section drops the schedule and the โ€œkept up to dateโ€ line in either case.

The checks walk the filesystem, so the plugins and network themes list tables determine the message once per table instead of once per row.

Developed in โ€‹https://github.com/WordPress/wordpress-develop/pull/14506.

Follow-up to r47835.

Props kraftbj, eidolonnight, jgehrcke, nacin, johnbillion, chriscct7, SergeyBiryukov.
Fixes #27814.
Built from โ€‹https://develop.svn.wordpress.org/trunk@64586

22:46 Changeset [63735] by westonruter
  • trunk/wp-admin/includes/class-wp-debug-data.php
  • trunk/wp-admin/includes/noop.php
  • trunk/wp-admin/load-scripts.php
  • trunk/wp-admin/load-styles.php
  • trunk/wp-includes/class-wp-dependencies.php
  • trunk/wp-includes/class-wp-editor.php
  • trunk/wp-includes/class-wp-scripts.php
  • trunk/wp-includes/class-wp-styles.php
  • trunk/wp-includes/default-constants.php
  • trunk/wp-includes/deprecated.php
  • trunk/wp-includes/global-styles-and-settings.php
  • trunk/wp-includes/script-loader.php
  • trunk/wp-includes/version.php

Script Loader: Retire script and style concatenation.

Scripts and styles in the admin and on the login screen are no longer concatenated through load-scripts.php and load-styles.php. Concatenation paid off when browsers opened few connections per host over HTTP/1.1, but it has long been a source of bugs: dependencies outside the default directories were not honored, SCRIPT_DEBUG and the script_loader_src and style_loader_src filters were ignored, inline styles could be duplicated, and code run by the loaders without WordPress loaded caused fatal errors. It was turned off by default in r64320, once the assets of the next admin screen began to be prefetched in r64120, and this removes what remains.

Every item is now printed as its own tag, and what remains of the concatenation API is deprecated or removed:

  • The properties of WP_Scripts and WP_Styles that held items back for concatenation are deprecated but still declared, so plugins reading or setting them keep working. The do_item() methods no longer check do_concat.
  • The _print_scripts(), _print_styles(), script_concat_settings(), in_default_dir() and WP_Dependencies::get_etag() functions are deprecated.
  • The print_head_scripts, print_footer_scripts, print_admin_styles and print_late_styles filters only decided whether held markup was printed, so they are applied with apply_filters_deprecated() and their return values are ignored.
  • The CONCATENATE_SCRIPTS constant is no longer read.
  • The wp_should_concatenate_admin_scripts() function and its filter, added in r64120 for the transition and never released, are removed.

The loaders now respond with 410 Gone and a one-line plain text explanation, without loading WordPress, so that requests from bots and stale links cost next to nothing. Code written to run inside them without WordPress loaded, such as wp_theme_has_theme_json(), now uses the functions it had avoided, and wp-admin/includes/noop.php no longer defines its stub functions.

Developed in โ€‹https://github.com/WordPress/wordpress-develop/pull/14463.
Follow-up to r10357, r43580, r60719, r62657, r64120, r64320, r64485.

Props westonruter, jonsurrell, peterwilsoncc, azaozz, markhowellsmead, sergiomdgomes, jerclarke, adamsilverstein, sukhendu2002, adnan007, momo360modena, desrosj, welcher.
See #15833, #36448, #36449, #36779, #43825, #45008, #47322, #52879, #63908, #64087, #65515.
Fixes #57548.

Built from โ€‹https://develop.svn.wordpress.org/trunk@64585

21:48 Changeset [63734] by lancewillett
  • trunk/wp-includes/version.php

Tests: Verify timezone persistence and restore original settings.

Check successful timezone saves, rejection of invalid values, and persistence after reloading General Settings. Preserve and restore both timezone_string and gmt_offset, including half-hour offsets, using WP-CLI against the same site as the browser.

Keep dotenv output quiet when reading the saved options as JSON.

Developed in: โ€‹https://github.com/WordPress/wordpress-develop/pull/14207

Props juhise, lucatume.
See #52895.

Built from โ€‹https://develop.svn.wordpress.org/trunk@64584

21:26 Changeset [63733] by mcsf
  • trunk/wp-admin/css/admin-menu-rtl.css
  • trunk/wp-admin/css/admin-menu-rtl.min.css
  • trunk/wp-admin/css/admin-menu.css
  • trunk/wp-admin/css/admin-menu.min.css
  • trunk/wp-admin/css/colors/_admin.scss
  • trunk/wp-admin/css/colors/blue/colors-rtl.css
  • trunk/wp-admin/css/colors/blue/colors-rtl.min.css
  • trunk/wp-admin/css/colors/blue/colors.css
  • trunk/wp-admin/css/colors/blue/colors.min.css
  • trunk/wp-admin/css/colors/coffee/colors-rtl.css
  • trunk/wp-admin/css/colors/coffee/colors-rtl.min.css
  • trunk/wp-admin/css/colors/coffee/colors.css
  • trunk/wp-admin/css/colors/coffee/colors.min.css
  • trunk/wp-admin/css/colors/ectoplasm/colors-rtl.css
  • trunk/wp-admin/css/colors/ectoplasm/colors-rtl.min.css
  • trunk/wp-admin/css/colors/ectoplasm/colors.css
  • trunk/wp-admin/css/colors/ectoplasm/colors.min.css
  • trunk/wp-admin/css/colors/light/colors-rtl.css
  • trunk/wp-admin/css/colors/light/colors-rtl.min.css
  • trunk/wp-admin/css/colors/light/colors.css
  • trunk/wp-admin/css/colors/light/colors.min.css
  • trunk/wp-admin/css/colors/midnight/colors-rtl.css
  • trunk/wp-admin/css/colors/midnight/colors-rtl.min.css
  • trunk/wp-admin/css/colors/midnight/colors.css
  • trunk/wp-admin/css/colors/midnight/colors.min.css
  • trunk/wp-admin/css/colors/modern/colors-rtl.css
  • trunk/wp-admin/css/colors/modern/colors-rtl.min.css
  • trunk/wp-admin/css/colors/modern/colors.css
  • trunk/wp-admin/css/colors/modern/colors.min.css
  • trunk/wp-admin/css/colors/ocean/colors-rtl.css
  • trunk/wp-admin/css/colors/ocean/colors-rtl.min.css
  • trunk/wp-admin/css/colors/ocean/colors.css
  • trunk/wp-admin/css/colors/ocean/colors.min.css
  • trunk/wp-admin/css/colors/sunrise/colors-rtl.css
  • trunk/wp-admin/css/colors/sunrise/colors-rtl.min.css
  • trunk/wp-admin/css/colors/sunrise/colors.css
  • trunk/wp-admin/css/colors/sunrise/colors.min.css
  • trunk/wp-admin/includes/admin-filters.php
  • trunk/wp-admin/includes/misc.php
  • trunk/wp-admin/includes/plugin.php
  • trunk/wp-admin/js/user-profile.js
  • trunk/wp-admin/js/user-profile.min.js
  • trunk/wp-admin/menu-header.php
  • trunk/wp-admin/menu.php
  • trunk/wp-includes/admin-bar.php
  • trunk/wp-includes/class-wp-admin-bar.php
  • trunk/wp-includes/css/admin-bar-rtl.css
  • trunk/wp-includes/css/admin-bar-rtl.min.css
  • trunk/wp-includes/css/admin-bar.css
  • trunk/wp-includes/css/admin-bar.min.css
  • trunk/wp-includes/icons.php
  • trunk/wp-includes/post.php
  • trunk/wp-includes/version.php

Administration: Replace Dashicons in admin bar and sidebar with wp-icons.

Replace the usage of Dashicons in admin bar and sidebar with @wordpress/icons via the newly-introduced wp_get_icon() function, which outputs an inline SVG to be rendered.

Developed in โ€‹https://github.com/WordPress/wordpress-develop/pull/12270.

Props fushar, wildworks, tyxla, mcsf, mciampini, aduth, peterwilsoncc, jeffpaul, fcoveram, keoshi, joen, afercia, ugyensupport, mrwweb.
Fixes #65089.

Built from โ€‹https://develop.svn.wordpress.org/trunk@64583

20:55 Changeset [63732] by westonruter
  • trunk/wp-admin/includes/class-wp-automatic-updater.php
  • trunk/wp-includes/version.php

Upgrade/Install: Report fatal errors in auto-update emails.

When a plugin auto-update was rolled back because the loopback request found a fatal error, the failure email gave no reason, even though WP_Automatic_Updater::has_fatal_error() had already received the error's message, file, and line in the scrape result. These details are now added to the rollback WP_Error under a new plugin_update_fatal_error code, so the email lists them under the plugin whose update failed. This works regardless of WP_DEBUG, and when the loopback request itself fails, its error message is reported instead, so a rollback is no longer left unexplained.

The details are carried on the plugin's update result rather than in a transient, so that they cannot expire during a long update run, go stale when no email is sent, or be attributed to the wrong plugin when several fail in the same run. This also leaves the signature of the protected has_fatal_error() method unchanged for subclasses. Only the first line of the error message is included, since the message for an uncaught exception continues with a stack trace whose argument values, such as database credentials, would otherwise leave the server by email.

The parameters of the send_plugin_theme_email() and after_plugin_theme_update() methods are also typed with the update result types, so that PHPStan can check the new email code, which resolves a baselined error for a possibly undefined $subject.

Developed in โ€‹https://github.com/WordPress/wordpress-develop/pull/10445.
Follow-up to r58128, r64435.

Props tlloancy, westonruter, sajib1223, afragen, knutsp, im3dabasia1.
See #65817.
Fixes #64155.

Built from โ€‹https://develop.svn.wordpress.org/trunk@64582

20:36 Changeset [63731] by jorgefilipecosta
  • trunk/wp-includes/entity-fields.php
  • trunk/wp-includes/version.php
  • trunk/wp-settings.php

Editor: Register the core entity fields on the server.

Gutenberg registers the core fields (title, author, status, the media fields, โ€ฆ) on the server through the entity fields API, and the editors read them from the wp/v2/entity-fields route. Core has the API but registered no fields, so the title column of the Site Editor's pages list was blank. Register them in Core the same way.
Copy the PHP files of @wordpress/core-fields from the Gutenberg build in the gutenberg-php Grunt copy task, next to the core actions, and load their index.php from wp-settings.php. They register the default fields every post type gets from its supports, plus the field collections of pages, templates, template parts, patterns, attachments, navigation menus, and the site.
The entity fields tests now swap the core fields for their fixture defaults, so they still test the API on its own. The tests for the core fields are skipped until the pinned Gutenberg build includes them.

Developed in โ€‹https://github.com/WordPress/wordpress-develop/pull/14512.
Synced from โ€‹https://github.com/WordPress/gutenberg/pull/84696.
Follow-up to [64528].

Props oandregal, jorgefilipecosta.
Fixes #66229.
Built from โ€‹https://develop.svn.wordpress.org/trunk@64581

20:34 Changeset [63730] by lancewillett
  • trunk/wp-includes/version.php

Tests: Make media data providers static.

Declare ten data providers in tests/phpunit/tests/media/ as public static for compatibility with newer PHPUnit versions. Preserve their datasets and assertions.

Developed in: โ€‹https://github.com/WordPress/wordpress-develop/pull/14462

Props therssoftware.
See #66211.

Built from โ€‹https://develop.svn.wordpress.org/trunk@64580

20:31 Changeset [63729] by mikachan
  • trunk/wp-includes/block-patterns/query-large-title-posts.php
  • trunk/wp-includes/version.php

Editor: Fix link color in the "Large title" query pattern.

The Post Title block in the core/query-large-title-posts pattern set its link color with the old style.color.link attribute, which the block no longer supports. The setting was ignored, so the title links took the theme's link colour. In themes such as Twenty Twenty-Two and Twenty Twenty-Four, that made the titles nearly invisible on the pattern's dark background.

This changeset moves the link colour to style.elements.link.color.text, the Elements API attribute, so the titles show as intended.

Props sakshamsharma5, onemaggie.
Fixes #66201.
Built from โ€‹https://develop.svn.wordpress.org/trunk@64579

20:28 Changeset [63728] by lancewillett
  • trunk/wp-includes/version.php

Tests: Use the error assertion in term tests.

Use assertWPError() to check that wp_remove_object_terms() rejects an invalid taxonomy, preserving the existing assertion behavior.

Developed in: โ€‹https://github.com/WordPress/wordpress-develop/pull/14511

Props shailu25.
See #65819.

Built from โ€‹https://develop.svn.wordpress.org/trunk@64578

20:24 Changeset [63727] by lancewillett
  • trunk/wp-includes/version.php

Tests: Restore entity action module coverage annotations.

Add the two @covers annotations omitted when landing [64575], identifying wp_get_all_registered_entity_action_modules() and WP_Entity_Actions_Registry::get_all_registered_action_modules() as covered by the tests.

Follow-up to [64575].

Developed in: โ€‹https://github.com/WordPress/wordpress-develop/pull/14508

Props ravipatel.
See #65819.

Built from โ€‹https://develop.svn.wordpress.org/trunk@64577

20:19 Changeset [63726] by lancewillett
  • trunk/wp-includes/version.php

Tests: Use the error assertion in spam authentication tests.

Use assertWPError() to check that wp_authenticate_spam_check() rejects a user marked as spam.

Developed in: โ€‹https://github.com/WordPress/wordpress-develop/pull/14510

Props shailu25.
See #65819.

Built from โ€‹https://develop.svn.wordpress.org/trunk@64576

20:18 Changeset [63725] by lancewillett
  • trunk/wp-includes/version.php

Tests: Cover registered entity action modules.

Cover wp_get_all_registered_entity_action_modules() grouping, string identifiers, omitted empty modules, and initialization behavior.

Developed in: โ€‹https://github.com/WordPress/wordpress-develop/pull/14508

Props ravipatel.
See #65819.

Built from โ€‹https://develop.svn.wordpress.org/trunk@64575

20:16 Changeset [63724] by lancewillett
  • trunk/wp-includes/version.php

Tests: Use the error assertion in image resize tests.

Use assertWPError() in image resizing failure tests, preserving the existing error-code assertions.

Developed in: โ€‹https://github.com/WordPress/wordpress-develop/pull/14507

Props shailu25.
See #65819.

Built from โ€‹https://develop.svn.wordpress.org/trunk@64574

20:15 Changeset [63723] by lancewillett
  • trunk/wp-includes/version.php

Tests: Cover feed link output.

Cover the_feed_link() and post_comments_feed_link() output, feed arguments, permalink formats, and filters.

Developed in: โ€‹https://github.com/WordPress/wordpress-develop/pull/14493

Props rejaulalomkhan.
See #65819.

Built from โ€‹https://develop.svn.wordpress.org/trunk@64573

20:13 Changeset [63722] by lancewillett
  • trunk/wp-includes/version.php

Tests: Cover tag edit links.

Cover get_edit_tag_link() and edit_tag_link() for taxonomy handling, permissions, output, and filters.

Developed in: โ€‹https://github.com/WordPress/wordpress-develop/pull/14491

Props rejaulalomkhan, mukesh27.
See #65819.

Built from โ€‹https://develop.svn.wordpress.org/trunk@64572

20:12 Changeset [63721] by lancewillett
  • trunk/wp-includes/version.php

Tests: Strengthen mobile detection fixtures.

Use independent user-agent fixtures for wp_is_mobile() detection branches and cover a desktop client hint overriding a mobile user agent.

Developed in: โ€‹https://github.com/WordPress/wordpress-develop/pull/14429

Props shailu25.
See #65819.

Built from โ€‹https://develop.svn.wordpress.org/trunk@64571

20:10 Changeset [63720] by lancewillett
  • trunk/wp-includes/version.php

Tests: Cover JSONP callback edge cases.

Add coverage for empty strings, parentheses, and non-string inputs to wp_check_jsonp_callback(), complementing existing REST API tests.

Developed in: โ€‹https://github.com/WordPress/wordpress-develop/pull/14423

Props shailu25.
See #65819.

Built from โ€‹https://develop.svn.wordpress.org/trunk@64570

20:09 Changeset [63719] by lancewillett
  • trunk/wp-includes/version.php

Tests: Cover media state labels.

Cover get_media_states() for headers, backgrounds, site icons, and logos, including combined labels and filtering. Isolate the static header-image cache case.

Developed in: โ€‹https://github.com/WordPress/wordpress-develop/pull/14386

Props huzaifaalmesbah, rejaulalomkhan.
See #65819.

Built from โ€‹https://develop.svn.wordpress.org/trunk@64569

20:08 Changeset [63718] by lancewillett
  • trunk/wp-includes/version.php

Tests: Cover tag retrieval.

Cover get_tags() field selection, ordering, taxonomy overrides, and filter behavior with explicit fixture expectations.

Developed in: โ€‹https://github.com/WordPress/wordpress-develop/pull/14378

Props rejaulalomkhan, mukesh27, huzaifaalmesbah.
See #65819.

Built from โ€‹https://develop.svn.wordpress.org/trunk@64568

20:01 Changeset [63717] by jorgefilipecosta
  • trunk/wp-includes/default-filters.php
  • trunk/wp-includes/version.php
  • trunk/wp-includes/view-config.php

Editor: Add the attachment entity view config for the media editor.

Adds the view config of the attachment post type. Its form is the one of the media editor: the editable fields (title, alt text, caption, and description) in a regular layout, then the date, author, file name, MIME type, file size, dimensions, and "Attached to" fields in panels. Only the form is replaced; the default view, the layouts, and the list view stay the ones wp_get_entity_view_config() builds for every post type.
Without it, the media editor falls back to the default post type form, and the "Details" tab of the "Edit image" modal shows only the date and the author.

Developed in โ€‹https://github.com/WordPress/wordpress-develop/pull/14513.
Synced from โ€‹https://github.com/WordPress/gutenberg/pull/84700.

Props jorgefilipecosta, oandregal.
See #66229.
Built from โ€‹https://develop.svn.wordpress.org/trunk@64567

19:52 Changeset [63716] by jorgefilipecosta
  • trunk/wp-includes/default-filters.php
  • trunk/wp-includes/entity-actions.php
  • trunk/wp-includes/version.php
  • trunk/wp-settings.php

Editor: Register the core entity actions on the server.

Gutenberg registers the core actions (Trash, Rename, Duplicate, โ€ฆ) on the
server through the entity actions API, and the editors read them from the
wp/v2/entity-actions route. Register them in Core the same way.
Copy the PHP files of @wordpress/core-actions from the Gutenberg build in the
gutenberg-php Grunt copy task, alongside routes.php and pages.php, and
load their index.php from wp-settings.php.
Also preload the actions of the post type the post editor edits, so its actions
menu reads them from the preloaded data instead of requesting the route as it
loads.

Props jorgefilipecosta, oandregal.
Fixes #66343.
Built from โ€‹https://develop.svn.wordpress.org/trunk@64566

19:15 Changeset [63715] by lancewillett
  • trunk/wp-includes/version.php

Tests: Test comment edit link output.

Cover link text, surrounding markup, permissions, and filter behavior in edit_comment_link().

Developed in: โ€‹https://github.com/WordPress/wordpress-develop/pull/14488

Props rejaulalomkhan, mukesh27.
See #65819.

Built from โ€‹https://develop.svn.wordpress.org/trunk@64565

19:14 Changeset [63714] by lancewillett
  • trunk/wp-includes/version.php

Tests: Test user edit links.

Cover profile and user-edit URLs, permissions, ID handling, and filter behavior in get_edit_user_link().

Developed in: โ€‹https://github.com/WordPress/wordpress-develop/pull/14487

Props rejaulalomkhan, mukesh27.
See #65819.

Built from โ€‹https://develop.svn.wordpress.org/trunk@64564

19:13 Changeset [63713] by lancewillett
  • trunk/wp-includes/version.php

Tests: Test blog administration detection.

Cover screen contexts and the constant fallback in is_blog_admin().

Developed in: โ€‹https://github.com/WordPress/wordpress-develop/pull/14485

Props shailu25, mukesh27.
See #65819.

Built from โ€‹https://develop.svn.wordpress.org/trunk@64563

19:12 Changeset [63712] by lancewillett
  • trunk/wp-includes/version.php

Tests: Test edited-file error scraping setup.

Cover early returns and successful registration in wp_start_scraping_edited_file_errors(). Isolate the case that defines a constant and registers a shutdown callback.

Developed in: โ€‹https://github.com/WordPress/wordpress-develop/pull/14483

Props shailu25, mukesh27.
See #65819.

Built from โ€‹https://develop.svn.wordpress.org/trunk@64562

19:11 Changeset [63711] by lancewillett
  • trunk/wp-includes/version.php

Tests: Test active theme loading.

Cover theme path ordering, installation exceptions, and paused-theme filtering in wp_get_active_and_valid_themes().

Developed in: โ€‹https://github.com/WordPress/wordpress-develop/pull/14482

Props shailu25, mukesh27.
See #65819.

Built from โ€‹https://develop.svn.wordpress.org/trunk@64561

19:10 Changeset [63710] by lancewillett
  • trunk/wp-includes/version.php

Tests: Test internal character encoding.

Cover configured encoding and the empty-charset fallback in wp_set_internal_encoding(), restoring the original encoding after each test.

Developed in: โ€‹https://github.com/WordPress/wordpress-develop/pull/14481

Props shailu25, mukesh27.
See #65819.

Built from โ€‹https://develop.svn.wordpress.org/trunk@64560

19:09 Changeset [63709] by lancewillett
  • trunk/wp-includes/version.php

Tests: Test active plugin loading.

Cover valid and invalid plugin entries, installation mode, and recovery filtering in wp_get_active_and_valid_plugins().

Developed in: โ€‹https://github.com/WordPress/wordpress-develop/pull/14480

Props shailu25, mukesh27.
See #65819.

Built from โ€‹https://develop.svn.wordpress.org/trunk@64559

19:08 Changeset [63708] by lancewillett
  • trunk/wp-includes/version.php

Tests: Test edited-file error output.

Add coverage for the output markers and nonfatal error handling in wp_finalize_scraping_edited_file_errors().

Developed in: โ€‹https://github.com/WordPress/wordpress-develop/pull/14479

Props shailu25, mukesh27.
See #65819.

Built from โ€‹https://develop.svn.wordpress.org/trunk@64558

19:00 Changeset [63707] by lancewillett
  • trunk/wp-includes/version.php

Tests: Cover wp_magic_quotes().

Verify escaping in request superglobals and rebuilding of $_REQUEST, including POST precedence and exclusion of cookies and stale keys. Restore the original superglobals after each test.

Developed in: โ€‹https://github.com/WordPress/wordpress-develop/pull/14478

Props shailu25, mukesh27.
See #65819.

Built from โ€‹https://develop.svn.wordpress.org/trunk@64557

18:59 Changeset [63706] by lancewillett
  • trunk/wp-includes/version.php

Tests: Cover wp_is_recovery_mode().

Verify active and inactive recovery-mode results and consistency with the recovery-mode instance. Restore its original state after each test.

Developed in: โ€‹https://github.com/WordPress/wordpress-develop/pull/14477

Props shailu25, mukesh27.
See #65819.

Built from โ€‹https://develop.svn.wordpress.org/trunk@64556

18:56 Changeset [63705] by lancewillett
  • trunk/wp-includes/version.php

Tests: Cover wp_skip_paused_themes().

Verify filtering of paused themes by directory basename, preservation of remaining entries, and error data stored for notices. Restore recovery-mode state after each test.

Developed in: โ€‹https://github.com/WordPress/wordpress-develop/pull/14476

Props shailu25, mukesh27.
See #65819.

Built from โ€‹https://develop.svn.wordpress.org/trunk@64555

18:55 Changeset [63704] by lancewillett
  • trunk/wp-includes/version.php

Tests: Cover wp_skip_paused_plugins().

Verify filtering of paused directory and single-file plugins, preservation of remaining entries, and error data stored for notices. Restore recovery-mode state after each test.

Developed in: โ€‹https://github.com/WordPress/wordpress-develop/pull/14475

Props shailu25, mukesh27.
See #65819.

Built from โ€‹https://develop.svn.wordpress.org/trunk@64554

18:54 Changeset [63703] by lancewillett
  • trunk/wp-includes/version.php

Tests: Cover wp_is_maintenance_mode().

Verify maintenance-file freshness, installation and fatal-error scraping bypasses, and filtered maintenance decisions. Restore request and installation state and remove the test file.

Developed in: โ€‹https://github.com/WordPress/wordpress-develop/pull/14474

Props shailu25, mukesh27.
See #65819.

Built from โ€‹https://develop.svn.wordpress.org/trunk@64553

18:52 Changeset [63702] by lancewillett
  • trunk/wp-includes/version.php

Tests: Cover is_protected_ajax_action().

Verify Ajax preconditions, built-in protected actions, unknown actions, and filtered additions. Use the Ajax filter to avoid unnecessary process isolation.

Developed in: โ€‹https://github.com/WordPress/wordpress-develop/pull/14473

Props shailu25, mukesh27.
See #65819.

Built from โ€‹https://develop.svn.wordpress.org/trunk@64552

18:50 Changeset [63701] by lancewillett
  • trunk/wp-includes/version.php

Tests: Cover is_protected_endpoint().

Verify protection for login, admin, and selected Ajax requests, front-end defaults, and the endpoint filter. Use the Ajax filter to avoid unnecessary process isolation.

Developed in: โ€‹https://github.com/WordPress/wordpress-develop/pull/14472

Props shailu25, mukesh27.
See #65819.

Built from โ€‹https://develop.svn.wordpress.org/trunk@64551

18:48 Changeset [63700] by lancewillett
  • trunk/wp-includes/version.php

Tests: Cover get_delete_post_link().

Verify trash and forced-delete URLs, nonce actions, post selection, permission checks, custom post types, deprecated arguments, and filtered output.

Developed in: โ€‹https://github.com/WordPress/wordpress-develop/pull/14459

Props rejaulalomkhan.
See #65819.

Built from โ€‹https://develop.svn.wordpress.org/trunk@64550

18:47 Changeset [63699] by lancewillett
  • trunk/wp-includes/version.php

Tests: Cover get_search_link().

Verify plain and pretty search URLs, spaces and special characters, the current search query fallback, and filtered links.

Developed in: โ€‹https://github.com/WordPress/wordpress-develop/pull/14458

Props rejaulalomkhan.
See #65819.

Built from โ€‹https://develop.svn.wordpress.org/trunk@64549

18:46 Changeset [63698] by lancewillett
  • trunk/wp-includes/version.php

Tests: Cover the_modified_author().

Verify echoed editor names, missing editor or post context, display-name handling, and filtered output.

Developed in: โ€‹https://github.com/WordPress/wordpress-develop/pull/14456

Props rejaulalomkhan.
See #65819.

Built from โ€‹https://develop.svn.wordpress.org/trunk@64548

18:38 Changeset [63697] by lancewillett
  • trunk/wp-includes/version.php

Tests: Cover the_shortlink().

Verify echoed short links, link text, surrounding markup, empty output, and filter arguments and results.

Developed in: โ€‹https://github.com/WordPress/wordpress-develop/pull/14455

Props rejaulalomkhan.
See #65819.

Built from โ€‹https://develop.svn.wordpress.org/trunk@64547

18:37 Changeset [63696] by lancewillett
  • trunk/wp-includes/version.php

Tests: Cover get_post_format_link().

Verify post-format archive links with plain and pretty permalinks, invalid formats, and filtered term links.

Developed in: โ€‹https://github.com/WordPress/wordpress-develop/pull/14454

Props rejaulalomkhan.
See #65819.

Built from โ€‹https://develop.svn.wordpress.org/trunk@64546

18:36 Changeset [63695] by lancewillett
  • trunk/wp-includes/version.php

Tests: Cover wp_using_ext_object_cache().

Verify reading the external-cache flag, previous-value setter returns, state transitions, and repeated assignments. Restore the original flag after each test.

Developed in: โ€‹https://github.com/WordPress/wordpress-develop/pull/14452

Props shailu25, rejaulalomkhan.
See #65819.

Built from โ€‹https://develop.svn.wordpress.org/trunk@64545

18:35 Changeset [63694] by lancewillett
  • trunk/wp-includes/version.php

Tests: Cover the_modified_date().

Verify echoed and returned modification dates, date formats, surrounding markup, missing posts, and display and retrieval filters. Use distinct creation and modification dates.

Developed in: โ€‹https://github.com/WordPress/wordpress-develop/pull/14451

Props rejaulalomkhan.
See #65819.

Built from โ€‹https://develop.svn.wordpress.org/trunk@64544

18:34 Changeset [63693] by lancewillett
  • trunk/wp-includes/version.php

Tests: Cover the_modified_time().

Verify echoed modification times, explicit and configured formats, missing posts, and display and retrieval filters. Use distinct creation and modification timestamps.

Developed in: โ€‹https://github.com/WordPress/wordpress-develop/pull/14449

Props rejaulalomkhan.
See #65819.

Built from โ€‹https://develop.svn.wordpress.org/trunk@64543

18:33 Changeset [63692] by lancewillett
  • trunk/wp-includes/version.php

Tests: Cover wp_installing().

Verify the installation-state getter, previous-value setter returns, state transitions, and repeated assignments. Reset installation state after each test.

Developed in: โ€‹https://github.com/WordPress/wordpress-develop/pull/14448

Props shailu25.
See #65819.

Built from โ€‹https://develop.svn.wordpress.org/trunk@64542

18:32 Changeset [63691] by lancewillett
  • trunk/wp-includes/version.php

Tests: Cover the_time().

Verify echoed post times, explicit and configured formats, missing posts, and display and retrieval filters.

Developed in: โ€‹https://github.com/WordPress/wordpress-develop/pull/14447

Props rejaulalomkhan.
See #65819.

Built from โ€‹https://develop.svn.wordpress.org/trunk@64541

18:31 Changeset [63690] by lancewillett
  • trunk/wp-includes/version.php

Tests: Cover wp_get_environment_type().

Verify supported constant values and production fallbacks for missing, empty, or invalid values. Isolate constant definitions and clear the inherited environment value.

Developed in: โ€‹https://github.com/WordPress/wordpress-develop/pull/14446

Props shailu25.
See #65819.

Built from โ€‹https://develop.svn.wordpress.org/trunk@64540

18:19 Changeset [63689] by westonruter
  • trunk/wp-includes/version.php

Build/Test Tools: Report PHPStan errors in a pull request comment.

Since PHPStan was integrated into CI, its errors have only been reported as warning annotations, which are easy to miss, even for committers. Some cannot be shown alongside the changes at all: an out-of-date baseline entry is reported without a line number, which is how a stale baseline was committed in r63485 and regenerated afterward in r63486, and an unmatched ignoreErrors entry without a path has no file to be attached to.

The annotations are now emitted from PHPStan's JSON report instead of by cs2pr, since that report says whether each error can be ignored. Errors that can be ignored remain warnings, while those PHPStan does not allow to be ignored are annotated as errors and fail the check, with instructions for regenerating the baselines when those are the cause.

For pull requests, the results are also uploaded as an artifact, which a new workflow triggered by workflow_run turns into a single comment on the pull request, so that it works for pull requests from forks as well. The comment's heading shows whether the check fails, has only warnings, or has nothing left to report. It lists each error with the commit it was first reported for, moves the errors that a commit resolves into a collapsed list naming that commit, and is minimized once all of them are resolved. The history is kept within the comment itself. Since the analysis runs on the pull request merged into its base branch, errors in files that the base branch has changed since are not linked to their lines, and the comment suggests merging the latest base branch instead.

The artifact is treated as untrusted: nothing from the pull request is checked out in the privileged workflow, the results are validated, messages are rendered as code spans so that they cannot mention users or link issues, and results are only accepted for the current head of the pull request.

The PHPStan README now describes these results, and discourages @phpstan-ignore comments, which hide an error from every later analysis of that line, in favor of fixing the error or correcting the types PHPStan relies on.

Developed in โ€‹https://github.com/WordPress/wordpress-develop/pull/14261.
Follow-up to r61699, r63019.

See #65817.

Built from โ€‹https://develop.svn.wordpress.org/trunk@64539

18:16 Changeset [63688] by lancewillett
  • trunk/wp-includes/version.php

Tests: Cover wp_using_themes().

Verify undefined, true, and false WP_USE_THEMES states and filter overrides, with process isolation for constant definitions.

Developed in: โ€‹https://github.com/WordPress/wordpress-develop/pull/14445

Props shailu25.
See #65819.

Built from โ€‹https://develop.svn.wordpress.org/trunk@64538

18:15 Changeset [63687] by lancewillett
  • trunk/wp-includes/version.php

Tests: Cover wp_doing_cron().

Verify undefined, true, and false DOING_CRON states and filter overrides, with process isolation for constant definitions.

Developed in: โ€‹https://github.com/WordPress/wordpress-develop/pull/14444

Props shailu25.
See #65819.

Built from โ€‹https://develop.svn.wordpress.org/trunk@64537

18:14 Changeset [63686] by lancewillett
  • trunk/wp-includes/version.php

Tests: Cover wp_doing_ajax().

Verify undefined, true, and false DOING_AJAX states and filter overrides, with process isolation for constant definitions.

Developed in: โ€‹https://github.com/WordPress/wordpress-develop/pull/14442

Props shailu25.
See #65819.

Built from โ€‹https://develop.svn.wordpress.org/trunk@64536

18:13 Changeset [63685] by lancewillett
  • trunk/wp-includes/version.php

Tests: Cover the_guid().

Verify GUID output for post IDs, objects, the global post, attachments, and missing or empty values. Cover the the_guid and get_the_guid filters.

Developed in: โ€‹https://github.com/WordPress/wordpress-develop/pull/14441

Props rejaulalomkhan.
See #65819.

Built from โ€‹https://develop.svn.wordpress.org/trunk@64535

18:12 Changeset [63684] by lancewillett
  • trunk/wp-includes/version.php

Tests: Cover suggested privacy policy content updates.

Verify plugin activation, deactivation, reactivation, renamed plugins, and changed policy text in WP_Privacy_Policy_Content::get_suggested_policy_text(). Check stored metadata, timestamps, incomplete entries, and entry ordering.

Developed in: โ€‹https://github.com/WordPress/wordpress-develop/pull/14439

Props huzaifaalmesbah.
See #65819.

Built from โ€‹https://develop.svn.wordpress.org/trunk@64534

18:11 Changeset [63683] by lancewillett
  • trunk/wp-includes/version.php

Tests: Cover get_day_link().

Verify plain and pretty day archive URLs, month and day padding, fallback date values, and the day_link filter.

Developed in: โ€‹https://github.com/WordPress/wordpress-develop/pull/14438

Props rejaulalomkhan.
See #65819.

Built from โ€‹https://develop.svn.wordpress.org/trunk@64533

18:10 Changeset [63682] by lancewillett
  • trunk/wp-includes/version.php

Tests: Cover wp_is_file_mod_allowed().

Verify the DISALLOW_FILE_MODS states, context forwarding, and filter overrides. Isolate constant-defining cases in separate processes.

Developed in: โ€‹https://github.com/WordPress/wordpress-develop/pull/14437

Props shailu25.
See #65819.

Built from โ€‹https://develop.svn.wordpress.org/trunk@64532

18:09 Changeset [63681] by lancewillett
  • trunk/wp-includes/version.php

Tests: Cover get_month_link().

Verify plain and pretty month archive URLs, month padding, fallback date values, and the month_link filter.

Developed in: โ€‹https://github.com/WordPress/wordpress-develop/pull/14436

Props rejaulalomkhan.
See #65819.

Built from โ€‹https://develop.svn.wordpress.org/trunk@64531

18:08 Changeset [63680] by lancewillett
  • trunk/wp-includes/version.php

Tests: Cover the_permalink().

Verify echoed permalinks for global and explicit posts, post objects, filtered output, and nonexistent posts.

Developed in: โ€‹https://github.com/WordPress/wordpress-develop/pull/14435

Props rejaulalomkhan.
See #65819.

Built from โ€‹https://develop.svn.wordpress.org/trunk@64530

18:07 Changeset [63679] by lancewillett
  • trunk/wp-includes/version.php

Tests: Cover get_year_link().

Verify plain and pretty year archive URLs, trailing-slash behavior, fallback years, and the year_link filter.

Developed in: โ€‹https://github.com/WordPress/wordpress-develop/pull/14434

Props rejaulalomkhan, huzaifaalmesbah.
See #65819.

Built from โ€‹https://develop.svn.wordpress.org/trunk@64529

17:48 Changeset [63678] by oandregal
  • trunk/wp-includes/class-wp-entity-fields-registry.php
  • trunk/wp-includes/default-filters.php
  • trunk/wp-includes/entity-fields.php
  • trunk/wp-includes/rest-api.php
  • trunk/wp-includes/rest-api/endpoints/class-wp-rest-entity-fields-controller.php
  • trunk/wp-includes/version.php
  • trunk/wp-settings.php

Editor: Add the entity fields API.

Adds a registry for the fields DataViews and DataForm show for an entity,
so they can be registered on the server with wp_register_entity_fields() and wp_unregister_entity_fields() on the wp_entity_fields_api_init action.

Props: oandregal, jorgefilipecosta.
Part of #66229.

Built from โ€‹https://develop.svn.wordpress.org/trunk@64528

17:40 Changeset [63677] by westonruter
  • trunk/wp-includes/class-wp-http-response.php
  • trunk/wp-includes/load.php
  • trunk/wp-includes/rest-api/class-wp-rest-request.php
  • trunk/wp-includes/rest-api/class-wp-rest-response.php
  • trunk/wp-includes/rest-api/class-wp-rest-server.php
  • trunk/wp-includes/rest-api/endpoints/class-wp-rest-comments-controller.php
  • trunk/wp-includes/rest-api/endpoints/class-wp-rest-templates-controller.php
  • trunk/wp-includes/version.php

Code Quality: Narrow types for REST requests and responses.

Adds array shapes and narrowed types to WP_HTTP_Response, WP_REST_Request and WP_REST_Response, and to the parts of WP_REST_Server that pass data to them, reusing the route handler and endpoint argument aliases the server already defines. Several existing types were wrong rather than merely loose, and are corrected:

  • A request's body is null until one is set.
  • A request's JSON params decode to a scalar for a JSON body that is not an object or array.
  • A request's headers hold lists of values.
  • A file param may describe a failed upload, or a field named with brackets such as files[].

The status code is typed int<100, 599>, and absint() gains a template conditional return so that an argument already known to be a non-negative integer keeps its narrower type through it. The one call where that type cannot be inferred, in the deprecated numeric branch of wp_get_recent_posts(), is added to the PHPStan baseline. The no-cache check for a 4xx response to a method-overridden request now compares the status numerically instead of passing an integer to str_starts_with(), which removes another baseline entry, and a test now covers that path.

The narrower types also expose existing bugs that are left for follow-up: a scalar JSON body makes WP_REST_Request::set_param() fatal and WP_REST_Request::sanitize_params() warn, and uploading to the media endpoint with a file[] field makes WP_REST_Attachments_Controller::create_item() throw a TypeError.

Developed in โ€‹https://github.com/WordPress/wordpress-develop/pull/14471.
Follow-up to r34928, r56834, r57126, r62618, r63646, r63756.

Props westonruter, apermo.
See #65817.

Built from โ€‹https://develop.svn.wordpress.org/trunk@64527

17:15 Changeset [63676] by lancewillett
  • trunk/wp-includes/version.php

Tests: Cover the_author_posts().

Verify echoed author post counts for ordinary and custom post types, and zero output without a global post.

Developed in: โ€‹https://github.com/WordPress/wordpress-develop/pull/14433

Props rejaulalomkhan.
See #65819.

Built from โ€‹https://develop.svn.wordpress.org/trunk@64526

17:09 Changeset [63675] by lancewillett
  • trunk/wp-includes/version.php

Tests: Cover the_privacy_policy_link().

Verify echoed privacy links and surrounding markup, empty output for unconfigured or unpublished pages, and filtered output.

Developed in: โ€‹https://github.com/WordPress/wordpress-develop/pull/14432

Props rejaulalomkhan.
See #65819.

Built from โ€‹https://develop.svn.wordpress.org/trunk@64525

17:07 Changeset [63674] by lancewillett
  • trunk/wp-includes/version.php

Tests: Cover the_author_posts_link().

Verify echoed author links, permalink formats, empty author context, deprecated arguments, and filtered output.

Developed in: โ€‹https://github.com/WordPress/wordpress-develop/pull/14431

Props rejaulalomkhan.
See #65819.

Built from โ€‹https://develop.svn.wordpress.org/trunk@64524

17:06 Changeset [63673] by lancewillett
  • trunk/wp-includes/version.php

Tests: Cover has_tag().

Verify matching by ID, name, slug, and arrays, explicit and global posts, empty tags, nonmatches, and numeric-name versus integer-ID behavior.

Developed in: โ€‹https://github.com/WordPress/wordpress-develop/pull/14428

Props rejaulalomkhan.
See #65819.

Built from โ€‹https://develop.svn.wordpress.org/trunk@64523

17:02 Changeset [63672] by lancewillett
  • trunk/wp-includes/version.php

Tests: Verify edits target the filtered image editor.

Record image operations separately for the original and replacement editors. Assert that image_edit_apply_changes() applies the combined edits only to the filtered editor.

Developed in: โ€‹https://github.com/WordPress/wordpress-develop/pull/14427

Props huzaifaalmesbah.
See #65819.

Built from โ€‹https://develop.svn.wordpress.org/trunk@64522

17:01 Changeset [63671] by lancewillett
  • trunk/wp-includes/version.php

Tests: Strengthen code editor settings coverage.

Cover JSON filename mode detection in wp_get_code_editor_settings() and verify that HTMLHint receives the complete post KSES allowlist.

Developed in: โ€‹https://github.com/WordPress/wordpress-develop/pull/14426

Props huzaifaalmesbah.
See #65819.

Built from โ€‹https://develop.svn.wordpress.org/trunk@64521

16:59 Changeset [63670] by lancewillett
  • trunk/wp-includes/version.php

Tests: Cover tag_description().

Verify formatted descriptions, archive defaults, explicit term IDs, empty results, and description filtering.

Developed in: โ€‹https://github.com/WordPress/wordpress-develop/pull/14425

Props rejaulalomkhan.
See #65819.

Built from โ€‹https://develop.svn.wordpress.org/trunk@64520

16:57 Changeset [63669] by mcsf
  • trunk/wp-admin/css/colors/_admin.scss
  • trunk/wp-admin/css/colors/blue/colors-rtl.css
  • trunk/wp-admin/css/colors/blue/colors-rtl.min.css
  • trunk/wp-admin/css/colors/blue/colors.css
  • trunk/wp-admin/css/colors/blue/colors.min.css
  • trunk/wp-admin/css/colors/coffee/colors-rtl.css
  • trunk/wp-admin/css/colors/coffee/colors-rtl.min.css
  • trunk/wp-admin/css/colors/coffee/colors.css
  • trunk/wp-admin/css/colors/coffee/colors.min.css
  • trunk/wp-admin/css/colors/ectoplasm/colors-rtl.css
  • trunk/wp-admin/css/colors/ectoplasm/colors-rtl.min.css
  • trunk/wp-admin/css/colors/ectoplasm/colors.css
  • trunk/wp-admin/css/colors/ectoplasm/colors.min.css
  • trunk/wp-admin/css/colors/light/colors-rtl.css
  • trunk/wp-admin/css/colors/light/colors-rtl.min.css
  • trunk/wp-admin/css/colors/light/colors.css
  • trunk/wp-admin/css/colors/light/colors.min.css
  • trunk/wp-admin/css/colors/midnight/colors-rtl.css
  • trunk/wp-admin/css/colors/midnight/colors-rtl.min.css
  • trunk/wp-admin/css/colors/midnight/colors.css
  • trunk/wp-admin/css/colors/midnight/colors.min.css
  • trunk/wp-admin/css/colors/modern/colors-rtl.css
  • trunk/wp-admin/css/colors/modern/colors-rtl.min.css
  • trunk/wp-admin/css/colors/modern/colors.css
  • trunk/wp-admin/css/colors/modern/colors.min.css
  • trunk/wp-admin/css/colors/ocean/colors-rtl.css
  • trunk/wp-admin/css/colors/ocean/colors-rtl.min.css
  • trunk/wp-admin/css/colors/ocean/colors.css
  • trunk/wp-admin/css/colors/ocean/colors.min.css
  • trunk/wp-admin/css/colors/sunrise/colors-rtl.css
  • trunk/wp-admin/css/colors/sunrise/colors-rtl.min.css
  • trunk/wp-admin/css/colors/sunrise/colors.css
  • trunk/wp-admin/css/colors/sunrise/colors.min.css
  • trunk/wp-admin/js/user-profile.js
  • trunk/wp-admin/js/user-profile.min.js
  • trunk/wp-includes/admin-bar.php
  • trunk/wp-includes/css/admin-bar-rtl.css
  • trunk/wp-includes/css/admin-bar-rtl.min.css
  • trunk/wp-includes/css/admin-bar.css
  • trunk/wp-includes/css/admin-bar.min.css
  • trunk/wp-includes/version.php

Toolbar: Fix display name live preview and "Howdy" color.

When the display name is changed on the profile page, correctly update the user menu in the admin bar: don't overwrite the "Edit Profile" item, do update the aria-label attribute, and of course update the rendered username.

Add class display-name to the greeting wrapper to better preserve back-compat with custom admin color schemes that only target #wp-admin-bar-user-info .display-name.

Follow-up to r64502 and its revert, r64504.

Props fushar, tyxla.

Fixes #66222.

Built from โ€‹https://develop.svn.wordpress.org/trunk@64519

16:56 Changeset [63668] by lancewillett
  • trunk/wp-includes/version.php

Tests: Pair the hidden admin-page access cases.

Add the accessible counterpart to the hidden top-level plugin page denial case in user_can_access_admin_page(), verifying that the denial entry determines access.

Developed in: โ€‹https://github.com/WordPress/wordpress-develop/pull/14424

Props huzaifaalmesbah.
See #65819.

Built from โ€‹https://develop.svn.wordpress.org/trunk@64518

16:44 Changeset [63667] by jorgefilipecosta
  • trunk/wp-includes/class-wp-entity-actions-registry.php
  • trunk/wp-includes/default-filters.php
  • trunk/wp-includes/entity-actions.php
  • trunk/wp-includes/rest-api.php
  • trunk/wp-includes/rest-api/endpoints/class-wp-rest-entity-actions-controller.php
  • trunk/wp-includes/version.php
  • trunk/wp-settings.php

Editor: Add the entity actions API.

Adds a registry for the actions DataViews shows for an entity, so they can be registered on the server with wp_register_entity_actions() and wp_unregister_entity_actions() on the wp_entity_actions_api_init action. An action definition is the serializable part of a DataViews action; its JavaScript parts come from a script module registered with the actions.
The GET /wp/v2/entity-actions route returns the actions of an entity and their script modules, which are also added to the import map of the pages that load the editor script.

Developed in โ€‹https://github.com/WordPress/wordpress-develop/pull/14276.
Synced from โ€‹https://github.com/WordPress/gutenberg/pull/84650.

Props jorgefilipecosta, oandregal.
Fixes #66343.
Built from โ€‹https://develop.svn.wordpress.org/trunk@64517

16:17 Changeset [63666] by lancewillett
  • trunk/wp-includes/version.php

Tests: Cover wp_is_xml_request().

Verify XML request detection through the Accept and Content-Type headers, including absent and non-XML header values.

Developed in: โ€‹https://github.com/WordPress/wordpress-develop/pull/14421

Props shailu25.
See #65819.

Built from โ€‹https://develop.svn.wordpress.org/trunk@64516

16:15 Changeset [63665] by lancewillett
  • trunk/wp-includes/version.php

Tests: Cover the_title_attribute().

Verify output and return behavior, argument formats, post selection, HTML stripping, attribute escaping, and title filtering. Cover empty titles and missing posts.

Developed in: โ€‹https://github.com/WordPress/wordpress-develop/pull/14420

Props rejaulalomkhan.
See #65819.

Built from โ€‹https://develop.svn.wordpress.org/trunk@64515

16:14 Changeset [63664] by lancewillett
  • trunk/wp-includes/version.php

Tests: Cover wp_is_json_request().

Verify JSON request detection through the Accept and Content-Type headers, including absent and non-JSON header values.

Developed in: โ€‹https://github.com/WordPress/wordpress-develop/pull/14419

Props shailu25, rejaulalomkhan.
See #65819.

Built from โ€‹https://develop.svn.wordpress.org/trunk@64514

16:11 Changeset [63663] by lancewillett
  • trunk/wp-includes/version.php

Tests: Cover wp_is_jsonp_request().

Verify JSONP request detection for missing, valid, and invalid callbacks, and disabling JSONP through the rest_jsonp_enabled filter.

Developed in: โ€‹https://github.com/WordPress/wordpress-develop/pull/14418

Props shailu25.
See #65819.

Built from โ€‹https://develop.svn.wordpress.org/trunk@64513

16:09 Changeset [63662] by lancewillett
  • trunk/wp-includes/version.php

Tests: Cover wp_get_server_protocol().

Verify recognized HTTP protocol values and the fallback for unknown, empty, or missing SERVER_PROTOCOL values.

Developed in: โ€‹https://github.com/WordPress/wordpress-develop/pull/14417

Props shailu25.
See #65819.

Built from โ€‹https://develop.svn.wordpress.org/trunk@64512

16:08 Changeset [63661] by lancewillett
  • trunk/wp-includes/version.php

Tests: Cover wp_removable_query_args().

Verify representative default removable query arguments and additions and removals through the removable_query_args filter.

Developed in: โ€‹https://github.com/WordPress/wordpress-develop/pull/14416

Props shailu25.
See #65819.

Built from โ€‹https://develop.svn.wordpress.org/trunk@64511

16:07 Changeset [63660] by lancewillett
  • trunk/wp-includes/version.php

Tests: Cover internal host and link helpers.

Verify wp_internal_hosts() defaults, filtered host normalization, and deduplication. Cover internal and external URL classification in wp_is_internal_link().

Developed in: โ€‹https://github.com/WordPress/wordpress-develop/pull/14415

Props shailu25.
See #65819.

Built from โ€‹https://develop.svn.wordpress.org/trunk@64510

16:06 Changeset [63659] by lancewillett
  • trunk/wp-includes/version.php

Tests: Cover wp_is_serving_rest_request().

Verify REST request detection when REST_REQUEST is undefined, true, or false. Isolate constant-defining cases in separate processes.

Developed in: โ€‹https://github.com/WordPress/wordpress-develop/pull/14414

Props shailu25.
See #65819.

Built from โ€‹https://develop.svn.wordpress.org/trunk@64509

15:57 Changeset [63658] by lancewillett
  • trunk/wp-includes/version.php

Tests: Simplify theme fixture setup in REST API tests.

Select the fixture theme directly in WP_Test_REST_Themes_Controller::set_up() instead of running switch_theme() before each test. Preserve the theme roots, template globals, and theme JSON cache cleanup needed by the controller tests.

Remove the unused saved theme object. Keep all test methods, data providers, and assertions unchanged.

Developed in: โ€‹https://github.com/WordPress/wordpress-develop/pull/14470

Props abcd95, rejaulalomkhan, mukesh27.
See #66074.

Built from โ€‹https://develop.svn.wordpress.org/trunk@64508

15:51 Changeset [63657] by lancewillett
  • trunk/wp-includes/version.php

Tests: Make rewrite data providers static.

Declare the remaining data providers in the rewrite tests as public static for compatibility with newer PHPUnit versions. Preserve the datasets and assertions.

Developed in: โ€‹https://github.com/WordPress/wordpress-develop/pull/14460

Props therssoftware.
See #66211.

Built from โ€‹https://develop.svn.wordpress.org/trunk@64507

15:50 Changeset [63656] by lancewillett
  • trunk/wp-includes/version.php

Tests: Make HTTP data providers static.

Declare the remaining data providers in the HTTP tests as public static for compatibility with newer PHPUnit versions. Preserve the datasets and assertions.

Developed in: โ€‹https://github.com/WordPress/wordpress-develop/pull/14440

Props therssoftware.
See #66211.

Built from โ€‹https://develop.svn.wordpress.org/trunk@64506

15:48 Changeset [63655] by lancewillett
  • trunk/wp-includes/version.php

Tests: Make AJAX data providers static.

Declare the remaining data providers in the AJAX tests as public static for compatibility with newer PHPUnit versions. Preserve the datasets and assertions.

Developed in: โ€‹https://github.com/WordPress/wordpress-develop/pull/14443

Props therssoftware.
See #66211.

Built from โ€‹https://develop.svn.wordpress.org/trunk@64505

15:09 Changeset [63654] by mcsf
  • trunk/wp-admin/js/user-profile.js
  • trunk/wp-admin/js/user-profile.min.js
  • trunk/wp-includes/version.php

Toolbar: Undo partial changes to user menu

Reverts r64502, which was missing some files for some reason.

Follow-up to r64502.

See #66222.

Built from โ€‹https://develop.svn.wordpress.org/trunk@64504

14:33 Changeset [63653] by oandregal
  • trunk/wp-includes/rest-api.php
  • trunk/wp-includes/rest-api/endpoints/class-wp-rest-view-config-controller.php
  • trunk/wp-includes/version.php
  • trunk/wp-includes/view-config.php

View config endpoint: add align to author and extract utility.

Props oandregal, jorgefilipecosta.
Part of #65981.

Built from โ€‹https://develop.svn.wordpress.org/trunk@64503

14:29 Changeset [63652] by mcsf
  • trunk/wp-admin/js/user-profile.js
  • trunk/wp-admin/js/user-profile.min.js
  • trunk/wp-includes/version.php

Toolbar: Fix display name live preview and "Howdy" color

When the selected display name is changed on the profile page, correctly update the user menu in the admin bar: don't overwrite the "Edit Profile" item, do update the aria-label attribute, and of course update the rendered username.

Add class display-name to the greeting wrapper to better preserve back-compat with custom admin color schemes that only target #wp-admin-bar-user-info .display-name.

Props fushar, tyxla.

Fixes #66222.

Built from โ€‹https://develop.svn.wordpress.org/trunk@64502

12:38 Changeset [63651] by luisherranz
  • trunk/wp-includes/interactivity-api/class-wp-interactivity-api.php
  • trunk/wp-includes/interactivity-api/class-wp-interactivity-dangerous-html.php
  • trunk/wp-includes/version.php

Interactivity API: Print data-wp-html tokens as the wpServerHtml marker.

Encode WP_Interactivity_Dangerous_HTML tokens as {"wpServerHtml":true} on both paths of wp_json_encode(), so the client keeps the server-rendered content of a data-wp-html host wherever the reference reaches the token, including data-wp-each items read from context. Stop listing tokens reached through state in derivedStateClosures, which the marker makes unnecessary.

Follow-up to [64386].

Props santosguillamot.
Fixes #66246.
Built from โ€‹https://develop.svn.wordpress.org/trunk@64501

11:15 Changeset [63650] by gziolo
  • trunk/wp-includes/abilities-api.php
  • trunk/wp-includes/abilities-api/class-wp-abilities-registry.php
  • trunk/wp-includes/abilities-api/class-wp-ability.php
  • trunk/wp-includes/abilities.php
  • trunk/wp-includes/abilities/class-wp-abilities-settings.php
  • trunk/wp-includes/rest-api/endpoints/class-wp-rest-abilities-v1-list-controller.php
  • trunk/wp-includes/version.php

Abilities API: Allow declaring required capabilities

Add required_capabilities to ability registration and expose it in REST responses. Check these capabilities before permission callbacks, allowing the callback to be omitted when capabilities are declared. Add has_required_capabilities filtering to wp_get_abilities() and the REST collection endpoint without running permission callbacks.

Developed in: โ€‹https://github.com/WordPress/wordpress-develop/pull/14335

Props ovidiu-galatan.
Fixes #66325.

Built from โ€‹https://develop.svn.wordpress.org/trunk@64500

10:57 Changeset [63649] by fabiankaegy
  • trunk/wp-includes/post.php
  • trunk/wp-includes/version.php
  • trunk/wp-includes/view-config.php

Editor: Add author support to the wp_block post type.

The REST API now returns each pattern's author, so the block inserter and the Site Editor's Patterns screen can filter patterns by author. Patterns already store post_author and their capabilities already check it.

Sets delete_with_user to false, so deleting a user keeps their patterns, as they may be used across the site.

Also renames the Site Editor's "My patterns" view to "Site patterns", since it lists every user-created pattern, not only the current user's.

Developed in โ€‹https://github.com/WordPress/wordpress-develop/pull/14269.
Synced from โ€‹https://github.com/WordPress/gutenberg/pull/84680.

Props fabiankaegy, wildworks, talldanwp, jameskoster, mamaduka, fcoveram.
Fixes #66307.

Built from โ€‹https://develop.svn.wordpress.org/trunk@64499

06:49 Changeset [63648] by jonsurrell
  • trunk/wp-admin/js/link.js
  • trunk/wp-admin/js/link.min.js
  • trunk/wp-admin/js/plugin-install.js
  • trunk/wp-admin/js/plugin-install.min.js
  • trunk/wp-admin/js/post.js
  • trunk/wp-admin/js/post.min.js
  • trunk/wp-admin/js/site-health.js
  • trunk/wp-admin/js/site-health.min.js
  • trunk/wp-admin/js/updates.js
  • trunk/wp-admin/js/updates.min.js
  • trunk/wp-includes/js/media-views.js
  • trunk/wp-includes/js/media-views.min.js
  • trunk/wp-includes/version.php

Administration: Avoid $() with non-literal selectors.

$( string ) either selects elements or creates elements from HTML, and the string decides which. Several scripts passed values that are not string literals to $(). These scripts now use $( document ).find(), which only selects.

Developed in: โ€‹https://github.com/WordPress/wordpress-develop/pull/14061

Follow-up to r64133.

Props jonsurrell, westonruter.
Fixes #66265.

Built from โ€‹https://develop.svn.wordpress.org/trunk@64498

06:33 Changeset [63647] by jonsurrell
  • trunk/wp-includes/class-wp-block-supports.php
  • trunk/wp-includes/version.php

Docs: get_block_wrapper_attributes() expects unescaped values.

Developed in: โ€‹https://github.com/WordPress/wordpress-develop/pull/14140

Props jonsurrell, westonruter.
See #65860.

Built from โ€‹https://develop.svn.wordpress.org/trunk@64497

05:57 Changeset [63646] by jonsurrell
  • trunk/wp-includes/script-loader.php
  • trunk/wp-includes/version.php

Script Loader: Document wp_inline_script_attributes $data parameter quirk.

Developed in: โ€‹https://github.com/WordPress/wordpress-develop/pull/14281

Props jonsurrell, westonruter.
See #65860, #66308.

Built from โ€‹https://develop.svn.wordpress.org/trunk@64496

05:45 Changeset [63645] by jonsurrell
  • trunk/wp-includes/html-api/class-wp-html-tag-processor.php
  • trunk/wp-includes/version.php

HTML API: Simplify the class_list() loop.

Developed in: โ€‹https://github.com/WordPress/wordpress-develop/pull/8076

Props jonsurrell, mukesh27, peterwilsoncc, westonruter.
See #65846.

Built from โ€‹https://develop.svn.wordpress.org/trunk@64495

04:21 Changeset [63644] by adamsilverstein
  • trunk/wp-includes/rest-api/endpoints/class-wp-rest-comments-controller.php
  • trunk/wp-includes/version.php

REST API: Enable filtering comments by multiple statuses.

WP_Comment_Query has always supported an array of statuses. The status collection parameter is now defined as an array of strings, so it accepts a comma-separated list (?status=approve,hold) or an array (?status[]=approve&status[]=hold). Values are sanitized by the new WP_REST_Comments_Controller::sanitize_comment_statuses() method.

Single status requests work as before, and the permission check is unchanged: unauthenticated requests may only use the default approve status. Because the parameter is now always an array after sanitization, code reading $request['status'] or status in the rest_comment_query filter receives an array instead of a string.

Props adamsilverstein, westonruter, swissspidy, timothyblynjacobs, mukesh27, wildworks.
Fixes #63982.

Built from โ€‹https://develop.svn.wordpress.org/trunk@64494

04:10 Changeset [63643] by isabel_brison
  • trunk/wp-includes/class-wp-duotone.php
  • trunk/wp-includes/version.php

Editor: ignore unsupported duotone attribute types.

Ensure early return from duotone render if attribute is neither string nor array.

Props yotatameguchi, westonruter, ramonopoly, isabel_brison.
See #65817.

Built from โ€‹https://develop.svn.wordpress.org/trunk@64493

10/18/2026:

22:57 Changeset [63642] by adamsilverstein
  • trunk/wp-includes/rest-api/endpoints/class-wp-rest-attachments-controller.php
  • trunk/wp-includes/version.php

REST API: Send URL sideloads through the shared attachment insert path.

Since [62659], a POST /wp/v2/media request with a url built its own response in create_item_from_url() and returned before create_item() did any of its work. Fields the schema accepts (title, caption, description, alt_text, featured_media, meta, terms) were silently dropped. The rest_pre_insert_attachment, rest_insert_attachment and wp_after_insert_post hooks never fired. A request with both an uploaded file and a url discarded the file without an error.

This treats a URL as a third source of the file, next to a multipart upload and a raw request body. create_item_from_url() becomes upload_from_url(), a sibling of upload_from_file() and upload_from_data(). It downloads the remote file, passes it to wp_handle_sideload(), and returns the same data. insert_attachment() picks the handler, so every path now shares the same insert, hooks and field handling. A request with both a file and a url now returns a 400. An error returned from rest_pre_insert_attachment is now respected on every path instead of being used as if it were an attachment.

Follow-up to [62659], [62841].

Props jeremyfelt, andrewserong, khokansardar.
Fixes #65810.

Built from โ€‹https://develop.svn.wordpress.org/trunk@64492

22:53 Changeset [63641] by ramonopoly
  • trunk/wp-includes/class-wp-theme-json.php
  • trunk/wp-includes/version.php

Editor: Remove theme.json preset items of unexpected types to prevent fatals in PHP

This commit prevents WP_Theme_JSON from throwing fatal TypeErrors when preset items in theme.json or global styles data contain values of the wrong type. Those values could be user- or AI-generated.

It does this by removing theme.json preset items that aren't objects, or whose slug isn't a scalar, in WP_Theme_JSON::sanitize().

Previouly, for example, a preset list of strings, such as "fontFamilies": [ "Inter" ], failed with Cannot access offset of type string on string when the stylesheet is generated.

Developed in: โ€‹https://github.com/WordPress/wordpress-develop/pull/14262

Props ramonopoly, aaronrobertshaw, isabel_brison.

Fixes #66304.

Built from โ€‹https://develop.svn.wordpress.org/trunk@64491

22:37 Changeset [63640] by adamsilverstein
  • trunk/wp-admin/edit-form-blocks.php
  • trunk/wp-admin/site-editor.php
  • trunk/wp-includes/rest-api/class-wp-rest-server.php
  • trunk/wp-includes/version.php

Media: Generate animated image sub-sizes by default.

Fix an issue where sub-sizes of animated image uploads were static first-frame images, as GD and Imagick flatten animated images when resizing. When client-side media processing is active, generated images now retain animations.

Add a wp_generate_animated_image_subsizes filter (boolean, default true) so the client pipeline can keep or drop the animation in sub-sizes. The client-side consumption ships via the Gutenberg package updates in โ€‹https://github.com/WordPress/gutenberg/pull/80385.

Fixes #65656, #28474.

Built from โ€‹https://develop.svn.wordpress.org/trunk@64490

22:33 Changeset [63639] by adamsilverstein
  • trunk/wp-includes/deprecated.php
  • trunk/wp-includes/media-template.php
  • trunk/wp-includes/media.php
  • trunk/wp-includes/version.php

Media: stop adding crossorigin attributes in the editor.

Fix an issue where editing a post in Chromium 137+ could end in a fatal error and a blank screen when the page loaded any cross-origin resource. wp_add_crossorigin_attributes() ran WP_HTML_Tag_Processor over the whole document inside an ob_start() display handler, where errors cannot be caught. The injected crossorigin="anonymous" was not needed in the first place: Document-Isolation-Policy: isolate-and-credentialless loads cross-origin scripts, stylesheets, audio and video without credentials instead of blocking them, and forcing a CORS request broke any host that does not send Access-Control-Allow-Origin, such as media offloaded to a CDN.

The header is now sent directly by the new wp_send_document_isolation_policy_header(), and the editor page is no longer buffered or rewritten. wp_start_cross_origin_isolation_output_buffer() and wp_add_crossorigin_attributes() are deprecated; the first only sends the header and the second returns the HTML unchanged. wp_print_media_templates() no longer adds the attribute to AUDIO and VIDEO tags. Cross-origin isolation and client-side media processing are unaffected.

Follow-up to [61844], [62048], [62819].

Props b0b3k, khokansardar, arkaprabhachowdhury, westonruter, andrewserong, algorithmsunlocks, sabernhardt, swissspidy, adamsilverstein.
Fixes #65930. See #65673.

Built from โ€‹https://develop.svn.wordpress.org/trunk@64489

22:28 Changeset [63638] by adamsilverstein
  • trunk/wp-admin/includes/class-wp-comments-list-table.php
  • trunk/wp-admin/includes/comment.php
  • trunk/wp-includes/class-wp-comment-query.php
  • trunk/wp-includes/class-wp-query.php
  • trunk/wp-includes/comment.php
  • trunk/wp-includes/link-template.php
  • trunk/wp-includes/rest-api/endpoints/class-wp-rest-comments-controller.php
  • trunk/wp-includes/version.php

Editor: Add emoji reactions โค๏ธ ๐ŸŽ‰ ๐Ÿ˜„ ๐Ÿ‘€ ๐Ÿš€

Add a reaction comment type so users can react to a note with one of five emoji. Each reaction is stored as its own comment under the note, with comment_content holding the emoji's hex key rather than raw emoji bytes, since the comments table isn't guaranteed to be utf8mb4.

Reactions are created and deleted through the /wp/v2/comments endpoint using the note permission checks (edit_post on the note's post). They are always approved and authored by the current user, limited to one per emoji per user per note, and cannot be edited. Notes gain a read-only reaction_summary field, prefetched in at most two queries per page of notes.

Reactions are excluded from the admin comments list, comment counts, get_lastcommentmodified(), comment feeds and a note's children link, and are trashed and deleted along with their note. Restoring a trashed note does not yet restore its reactions, see โ€‹https://github.com/WordPress/gutenberg/issues/84202.

This brings over the PHP changes from โ€‹https://github.com/WordPress/gutenberg/pull/76767.

Props adamsilverstein, wildworks, westonruter, noruzzaman, mamaduka, swissspidy, joedolson, joen, jeffpaul, andraganescu, mciampini, fcoveram, scruffian, manzoorwanijk, annezazu, ellatrix, jorbin.
Fixes #64638.

Built from โ€‹https://develop.svn.wordpress.org/trunk@64488

21:08 Changeset [63637] by SergeyBiryukov
  • trunk/wp-admin/includes/upgrade.php
  • trunk/wp-includes/version.php

Database: Ignore default integer display widths in dbDelta() on MariaDB.

dbDelta() compares the column type in a CREATE TABLE query with the type DESCRIBE reports. MariaDB, and MySQL before 8.0.17, add a default display width to an integer column declared without one, so a column declared as bigint unsigned reports bigint(20) unsigned, and dbDelta() sends the same ALTER TABLE on every call. Likewise, INTEGER never matches the int the server reports.

This commit skips the change when the query has no width and the server reports exactly the default width for that type, and treats INTEGER as int; any other difference is still compared, and MySQL 8.0.17+ keeps its existing code path, similar to the 6.1 change in #49364.

Developed in โ€‹https://github.com/WordPress/wordpress-develop/pull/14353.

Follow-up to r53897, r60789.

Props jmdodd, janjakes, SergeyBiryukov.
Fixes #46145.
Built from โ€‹https://develop.svn.wordpress.org/trunk@64487

04:18 Changeset [63636] by westonruter
  • trunk/wp-admin/admin-ajax.php
  • trunk/wp-admin/admin-footer.php
  • trunk/wp-admin/includes/ajax-actions.php
  • trunk/wp-admin/includes/deprecated.php
  • trunk/wp-admin/includes/template.php
  • trunk/wp-admin/includes/upgrade.php
  • trunk/wp-includes/option.php
  • trunk/wp-includes/version.php

Script Loader: Remove the unused compression test.

The compression test ran on admin screens until it stored its result in the can_compress_scripts option, but that result has had no effect since PHP compression was removed from load-scripts.php and load-styles.php in r43580, and the last code reading it was removed in r64485. The test also failed with a 400 error when admin_url() was filtered to add a query string, as translation plugins do, since it appended a second ? to the AJAX URL. Users without manage_options were sent the test on every admin page, since the AJAX handler rejected their requests and the option was never set. Rather than fixing the URL, the test is removed.

The compression_test() and wp_ajax_wp_compression_test() functions are deprecated as no-ops so that existing callers do not cause fatal errors, and the wp-compression-test AJAX action is no longer registered. On single sites, the option is already deleted on a database upgrade since it is in the list of unused options. On multisite it is a network option, so it is no longer primed and is now deleted by upgrade_network(), with the database version bumped for that step.

Developed in โ€‹https://github.com/WordPress/wordpress-develop/pull/14412.
Follow-up to r10357, r43580, r64485.

Props azaozz, juzar, tofandel, szepeviktor, irozum, oglekler, peterwilsoncc, westonruter.
See #57548, #63017.
Fixes #58302, #65750, #65980.

Built from โ€‹https://develop.svn.wordpress.org/trunk@64486

02:57 Changeset [63635] by westonruter
  • trunk/wp-includes/script-loader.php
  • trunk/wp-includes/version.php

Script Loader: Remove obsolete compression constants.

Scripts and styles have not been compressed from PHP since WordPress 4.9.9, when load-scripts.php and load-styles.php stopped reading the c argument in r43580. Even so, the COMPRESS_SCRIPTS, COMPRESS_CSS and ENFORCE_GZIP constants were still documented and read, only to set that unused argument on the loader URLs. That code and documentation are removed.

The $compress_scripts and $compress_css globals are kept for backward compatibility with code that reads them, but they now default to false since nothing is compressed, and a value already set by a plugin is still left alone. The compression test, which still runs in the admin, is to be removed separately.

Developed in โ€‹https://github.com/WordPress/wordpress-develop/pull/8409.
Follow-up to r10442, r43580, r64320, r64321.

Props sainathpoojary, westonruter, zodiac1978, dpknauss, azaozz.
See #44815, #57548, #58302, #65980.
Fixes #63017.

Built from โ€‹https://develop.svn.wordpress.org/trunk@64485

00:25 Changeset [63634] by lancewillett
  • trunk/wp-includes/version.php

Tests: Reuse existing fixtures in REST user tests.

Reuse the author and subscriber fixtures in read-only and rejected-request tests in WP_Test_REST_Users_Controller, avoiding 13 user creations per class run.

Preserve the requests, assertions, and include-query ordering checks. Keep fresh users for successful updates, deletions, and identity-specific scenarios, and retain per-test post and page fixtures.

Developed in: โ€‹https://github.com/WordPress/wordpress-develop/pull/14339

Props abcd95.
See #66074.

Built from โ€‹https://develop.svn.wordpress.org/trunk@64484

00:11 Changeset [63633] by lancewillett
  • trunk/wp-includes/version.php

Tests: Isolate the navigation menu ID filter per test.

Remove _nav_menu_item_id_use_once in Tests_Menu_wpNavMenu::set_up() after the parent setup. The test harness restores hooks after each test, so removing the filter only during class setup allows it to return and strip menu-item IDs from later output.

Rely on the normal per-test teardown to restore the filter.

Developed in: โ€‹https://github.com/WordPress/wordpress-develop/pull/14358

Props mukesh27.
See #65893.

Built from โ€‹https://develop.svn.wordpress.org/trunk@64483

10/17/2026:

23:56 Changeset [63632] by lancewillett
  • trunk/wp-includes/version.php

Tests: Add coverage for get_author_posts_url().

Checks query-string and pretty author URLs, explicit nicenames, and the author-link filter arguments.

Developed in: โ€‹https://github.com/WordPress/wordpress-develop/pull/14406

Props shailu25, rejaulalomkhan.
See #65819.

Built from โ€‹https://develop.svn.wordpress.org/trunk@64482

23:55 Changeset [63631] by lancewillett
  • trunk/wp-includes/version.php

Tests: Add coverage for the_author_link().

Checks linked and unlinked author output and the optional title attribute.

Developed in: โ€‹https://github.com/WordPress/wordpress-develop/pull/14405

Props shailu25.
See #65819.

Built from โ€‹https://develop.svn.wordpress.org/trunk@64481

23:54 Changeset [63630] by lancewillett
  • trunk/wp-includes/version.php

Tests: Add coverage for the_author().

Checks returned and echoed author names and both deprecated argument behaviors.

Developed in: โ€‹https://github.com/WordPress/wordpress-develop/pull/14404

Props shailu25.
See #65819.

Built from โ€‹https://develop.svn.wordpress.org/trunk@64480

23:53 Changeset [63629] by lancewillett
  • trunk/wp-includes/version.php

Tests: Add coverage for is_multi_author().

Checks published-author counts, excluded drafts and pages, cached values, and the result filter.

Developed in: โ€‹https://github.com/WordPress/wordpress-develop/pull/14403

Props shailu25.
See #65819.

Built from โ€‹https://develop.svn.wordpress.org/trunk@64479

23:51 Changeset [63628] by lancewillett
  • trunk/wp-includes/version.php

Tests: Add coverage for the_author_meta().

Checks current and explicit author fields and the dynamic author-field filter arguments.

Developed in: โ€‹https://github.com/WordPress/wordpress-develop/pull/14402

Props shailu25.
See #65819.

Built from โ€‹https://develop.svn.wordpress.org/trunk@64478

23:47 Changeset [63627] by lancewillett
  • trunk/wp-includes/version.php

Tests: Add coverage for the_tags().

Checks default and custom tag-list output and suppresses output when tag retrieval returns an error.

Developed in: โ€‹https://github.com/WordPress/wordpress-develop/pull/14401

Props shailu25.
See #65819.

Built from โ€‹https://develop.svn.wordpress.org/trunk@64477

23:46 Changeset [63626] by lancewillett
  • trunk/wp-includes/version.php

Tests: Add coverage for get_the_tag_list().

Checks tag-link formatting for the current or explicit post, empty results, and the tags filter arguments.

Developed in: โ€‹https://github.com/WordPress/wordpress-develop/pull/14394

Props shailu25.
See #65819.

Built from โ€‹https://develop.svn.wordpress.org/trunk@64476

23:45 Changeset [63625] by lancewillett
  • trunk/wp-includes/version.php

Tests: Add coverage for term_description().

Checks descriptions by term ID and queried archive object, including missing terms and non-archive requests.

Developed in: โ€‹https://github.com/WordPress/wordpress-develop/pull/14390

Props shailu25.
See #65819.

Built from โ€‹https://develop.svn.wordpress.org/trunk@64475

23:44 Changeset [63624] by lancewillett
  • trunk/wp-includes/version.php

Tests: Add coverage for the_terms().

Checks echoed term-link formatting, error suppression, and the display filter with its arguments.

Developed in: โ€‹https://github.com/WordPress/wordpress-develop/pull/14388

Props shailu25, rejaulalomkhan.
See #65819.

Built from โ€‹https://develop.svn.wordpress.org/trunk@64474

23:42 Changeset [63623] by lancewillett
  • trunk/wp-includes/version.php

Tests: Add coverage for get_the_term_list().

Checks term-link formatting, empty and error results, and the taxonomy-specific links filter.

Developed in: โ€‹https://github.com/WordPress/wordpress-develop/pull/14387

Props shailu25, rejaulalomkhan.
See #65819.

Built from โ€‹https://develop.svn.wordpress.org/trunk@64473

23:41 Changeset [63622] by lancewillett
  • trunk/wp-includes/version.php

Tests: Add coverage for image_edit_apply_changes().

Check rotation and flip combination, cancellation, operation order, crop scaling, filter arguments, and the GD image path in image_edit_apply_changes().

Developed in: โ€‹https://github.com/WordPress/wordpress-develop/pull/14383

Props huzaifaalmesbah, rejaulalomkhan.
See #65819.

Built from โ€‹https://develop.svn.wordpress.org/trunk@64472

23:40 Changeset [63621] by lancewillett
  • trunk/wp-includes/version.php

Tests: Add coverage for get_the_tags().

Checks post ID, post object, and global-post lookup, plus empty results and the tags filter.

Developed in: โ€‹https://github.com/WordPress/wordpress-develop/pull/14380

Props shailu25, mukesh27.
See #65819.

Built from โ€‹https://develop.svn.wordpress.org/trunk@64471

23:39 Changeset [63620] by lancewillett
  • trunk/wp-includes/version.php

Tests: Add coverage for in_category().

Checks matching categories and empty category inputs against a post.

Developed in: โ€‹https://github.com/WordPress/wordpress-develop/pull/14379

Props shailu25, mukesh27.
See #65819.

Built from โ€‹https://develop.svn.wordpress.org/trunk@64470

23:37 Changeset [63619] by lancewillett
  • trunk/wp-includes/version.php

Tests: Add coverage for wp_get_code_editor_settings().

Verify editor modes across MIME types and filenames, lint settings, HTMLHint permissions, argument overrides, and the wp_code_editor_settings filter.

Developed in: โ€‹https://github.com/WordPress/wordpress-develop/pull/14377

Props huzaifaalmesbah, mukesh27.
See #65819.

Built from โ€‹https://develop.svn.wordpress.org/trunk@64469

23:36 Changeset [63618] by lancewillett
  • trunk/wp-includes/version.php

Tests: Add coverage for walk_category_dropdown_tree().

Covers the default dropdown walker, invalid-walker fallback, and a supplied custom walker.

Developed in: โ€‹https://github.com/WordPress/wordpress-develop/pull/14376

Props shailu25, mukesh27.
See #65819.

Built from โ€‹https://develop.svn.wordpress.org/trunk@64468

23:35 Changeset [63617] by lancewillett
  • trunk/wp-includes/version.php

Tests: Add coverage for get_tag().

Covers tag lookup by ID and object, array output, edit-con filtering, and invalid or wrong-taxonomy inputs.

Developed in: โ€‹https://github.com/WordPress/wordpress-develop/pull/14375

Props rejaulalomkhan, mukesh27.
See #65819.

Built from โ€‹https://develop.svn.wordpress.org/trunk@64467

23:33 Changeset [63616] by lancewillett
  • trunk/wp-includes/version.php

Tests: Add coverage for walk_category_tree().

Covers the default walker, invalid-walker fallback, and a supplied custom walker.

Developed in: โ€‹https://github.com/WordPress/wordpress-develop/pull/14374

Props shailu25, mukesh27.
See #65819.

Built from โ€‹https://develop.svn.wordpress.org/trunk@64466

23:32 Changeset [63615] by lancewillett
  • trunk/wp-includes/version.php

Tests: Add coverage for the_category().

Checks the default category list and custom separator, parent, and post-ID output.

Developed in: โ€‹https://github.com/WordPress/wordpress-develop/pull/14373

Props shailu25, mukesh27.
See #65819.

Built from โ€‹https://develop.svn.wordpress.org/trunk@64465

23:31 Changeset [63614] by lancewillett
  • trunk/wp-includes/version.php

Tests: Add coverage for user_can_access_admin_page().

Check capability and registration decisions for core submenus, plugin pages, hidden pages, and parent-menu fallbacks. Restore menu and request globals between cases.

Developed in: โ€‹https://github.com/WordPress/wordpress-develop/pull/14372

Props huzaifaalmesbah, mukesh27.
See #65819.

Built from โ€‹https://develop.svn.wordpress.org/trunk@64464

23:30 Changeset [63613] by lancewillett
  • trunk/wp-includes/version.php

Tests: Add coverage for has_category().

Checks matching and missing categories, the empty-category case, global-post fallback, and invalid posts.

Developed in: โ€‹https://github.com/WordPress/wordpress-develop/pull/14369

Props shailu25, mukesh27.
See #65819.

Built from โ€‹https://develop.svn.wordpress.org/trunk@64463

23:29 Changeset [63612] by lancewillett
  • trunk/wp-includes/version.php

Tests: Add coverage for get_the_category().

Covers post ID and global-post lookup, empty results, compatibility properties, and the categories filter.

Developed in: โ€‹https://github.com/WordPress/wordpress-develop/pull/14368

Props shailu25, mukesh27.
See #65819.

Built from โ€‹https://develop.svn.wordpress.org/trunk@64462

23:27 Changeset [63611] by lancewillett
  • trunk/wp-includes/version.php

Tests: Add coverage for sanitize_category_field().

Checks field casting, con-specific filters and escaping, including the database slug path.

Developed in: โ€‹https://github.com/WordPress/wordpress-develop/pull/14367

Props shailu25, mukesh27.
See #65819.

Built from โ€‹https://develop.svn.wordpress.org/trunk@64461

23:26 Changeset [63610] by lancewillett
  • trunk/wp-includes/version.php

Tests: Add coverage for sanitize_category().

Covers object and array sanitization, filter arguments, and preservation of unset fields.

Developed in: โ€‹https://github.com/WordPress/wordpress-develop/pull/14366

Props shailu25, mukesh27.
See #65819.

Built from โ€‹https://develop.svn.wordpress.org/trunk@64460

23:24 Changeset [63609] by lancewillett
  • trunk/wp-includes/version.php

Tests: Add coverage for clean_category_cache().

Verifies category cache invalidation and its action, plus regeneration of the category hierarchy option.

Developed in: โ€‹https://github.com/WordPress/wordpress-develop/pull/14365

Props shailu25, mukesh27.
See #65819.

Built from โ€‹https://develop.svn.wordpress.org/trunk@64459

23:22 Changeset [63608] by SergeyBiryukov
  • trunk/wp-includes/class-wpdb.php
  • trunk/wp-includes/version.php

Database: Avoid a fatal error in wpdb::load_col_info() if the result is not set.

This resolves an error if mysqli_num_fields() is called before a successful SELECT-type query is performed:

mysqli_num_fields(): Argument #1 ($result) must be of type mysqli_result, false given

Developed in โ€‹https://github.com/WordPress/wordpress-develop/pull/13099.

Follow-up to r21472.

Props joehorntw, akshat2802, mukesh27, rejaulalomkhan, SergeyBiryukov.
Fixes #64130.
Built from โ€‹https://develop.svn.wordpress.org/trunk@64458

23:20 Changeset [63607] by lancewillett
  • trunk/wp-includes/version.php

Tests: Add coverage for cat_is_ancestor_of().

Checks direct and indirect ancestry, unrelated categories, and term IDs from another taxonomy.

Developed in: โ€‹https://github.com/WordPress/wordpress-develop/pull/14364

Props shailu25.
See #65819.

Built from โ€‹https://develop.svn.wordpress.org/trunk@64457

23:15 Changeset [63606] by lancewillett
  • trunk/wp-includes/version.php

Tests: Add coverage for get_category().

Covers category lookup by ID and object, array output, edit-con filtering, and invalid or wrong-taxonomy inputs.

Developed in: โ€‹https://github.com/WordPress/wordpress-develop/pull/14363

Props shailu25.
See #65819.

Built from โ€‹https://develop.svn.wordpress.org/trunk@64456

23:13 Changeset [63605] by lancewillett
  • trunk/wp-includes/version.php

Tests: Cover serialized parent block helpers.

Verify that extract_serialized_parent_block() retains the outer block and remove_serialized_parent_block() returns its inner content across nested blocks, attributes, comments, and whitespace.

Developed in: โ€‹https://github.com/WordPress/wordpress-develop/pull/14331

Props rejaulalomkhan.
See #65819.

Built from โ€‹https://develop.svn.wordpress.org/trunk@64455

23:12 Changeset [63604] by lancewillett
  • trunk/wp-includes/version.php

Tests: Add coverage for WP_Importer and get_cli_args().

Verify importer mappings, blog and user selection, request options, quota handling, and command-line argument parsing. Cover the 100-row boundary in get_imported_posts().

Developed in: โ€‹https://github.com/WordPress/wordpress-develop/pull/14327

Props huzaifaalmesbah.
See #65819.

Built from โ€‹https://develop.svn.wordpress.org/trunk@64454

23:10 Changeset [63603] by lancewillett
  • trunk/wp-includes/version.php

Tests: Cover whitespace and character references in class_list().

Check leading and trailing whitespace, whitespace-only values, encoded separators, and character-reference boundaries in class_list(). Prevent empty class names and incorrect decoding from passing unnoticed.

Developed in: โ€‹https://github.com/WordPress/wordpress-develop/pull/14300

Props jonsurrell.
See #65819.

Built from โ€‹https://develop.svn.wordpress.org/trunk@64453

19:22 Changeset [63602] by lancewillett
  • trunk/wp-includes/version.php

Tests: Cover navigation fallback response preparation.

Replace the empty test_prepare_item() stub with assertions for the navigation ID, response status, and embeddable self link returned by WP_REST_Navigation_Fallback_Controller::prepare_item_for_response(). Verify that requesting only id through _fields omits links.

Developed in: โ€‹https://github.com/WordPress/wordpress-develop/pull/14385

Props rejaulalomkhan.
See #40538, #66073.

Built from โ€‹https://develop.svn.wordpress.org/trunk@64452

19:21 Changeset [63601] by lancewillett
  • trunk/wp-includes/version.php

Tests: Cover REST page response preparation.

Replace the empty test_prepare_item() stub with assertions for page fields in the edit context and the self, collection, and about links returned by WP_REST_Posts_Controller::prepare_item_for_response().

Developed in: โ€‹https://github.com/WordPress/wordpress-develop/pull/14384

Props rejaulalomkhan, huzaifaalmesbah.
See #40538.

Built from โ€‹https://develop.svn.wordpress.org/trunk@64451

19:15 Changeset [63600] by lancewillett
  • trunk/wp-includes/version.php

Tests: Make canonical redirect test data providers static.

Declare the data providers in tests/phpunit/tests/canonical/ as public static for compatibility with newer PHPUnit versions. Preserve their datasets and assertions.

Developed in: โ€‹https://github.com/WordPress/wordpress-develop/pull/14399

Props rejaulalomkhan.
See #66211.

Built from โ€‹https://develop.svn.wordpress.org/trunk@64450

19:13 Changeset [63599] by lancewillett
  • trunk/wp-includes/version.php

Tests: Make block support test data providers static.

Declare the data providers in tests/phpunit/tests/block-supports/ as public static for compatibility with newer PHPUnit versions. Preserve their datasets and assertions.

Developed in: โ€‹https://github.com/WordPress/wordpress-develop/pull/14398

Props rejaulalomkhan.
See #66211.

Built from โ€‹https://develop.svn.wordpress.org/trunk@64449

19:11 Changeset [63598] by lancewillett
  • trunk/wp-includes/version.php

Tests: Make font test data providers static.

Declare the data providers in tests/phpunit/tests/fonts/ as public static for compatibility with newer PHPUnit versions. Preserve their datasets and assertions.

Developed in: โ€‹https://github.com/WordPress/wordpress-develop/pull/14400

Props rejaulalomkhan.
See #66211.

Built from โ€‹https://develop.svn.wordpress.org/trunk@64448

19:10 Changeset [63597] by lancewillett
  • trunk/wp-includes/version.php

Tests: Make date test data providers static.

Declare the data providers in tests/phpunit/tests/date/ as public static for compatibility with newer PHPUnit versions. Preserve their datasets and assertions.

Developed in: โ€‹https://github.com/WordPress/wordpress-develop/pull/14397

Props rejaulalomkhan.
See #66211.

Built from โ€‹https://develop.svn.wordpress.org/trunk@64447

19:09 Changeset [63596] by lancewillett
  • trunk/wp-includes/version.php

Tests: Make compatibility test data providers static.

Declare the data providers in tests/phpunit/tests/compat/ as public static for compatibility with newer PHPUnit versions. Preserve their datasets and assertions.

Developed in: โ€‹https://github.com/WordPress/wordpress-develop/pull/14396

Props rejaulalomkhan.
See #66211.

Built from โ€‹https://develop.svn.wordpress.org/trunk@64446

19:07 Changeset [63595] by lancewillett
  • trunk/wp-includes/version.php

Tests: Make term test data providers static.

Declare the data providers in tests/phpunit/tests/term/ as public static for compatibility with newer PHPUnit versions. Preserve their datasets and assertions. Call the existing static text_array_to_dataprovider() helper with self::.

Developed in: โ€‹https://github.com/WordPress/wordpress-develop/pull/14395

Props rejaulalomkhan.
See #66211.

Built from โ€‹https://develop.svn.wordpress.org/trunk@64445

19:06 Changeset [63594] by lancewillett
  • trunk/wp-includes/version.php

Tests: Make comment test data providers static.

Declare the data providers in tests/phpunit/tests/comment/ as public static for compatibility with newer PHPUnit versions. Preserve their datasets and assertions.

Developed in: โ€‹https://github.com/WordPress/wordpress-develop/pull/14393

Props rejaulalomkhan.
See #66211.

Built from โ€‹https://develop.svn.wordpress.org/trunk@64444

19:03 Changeset [63593] by lancewillett
  • trunk/wp-includes/version.php

Tests: Make sitemap test data providers static.

Declare the data providers in tests/phpunit/tests/sitemaps/ as public static for compatibility with newer PHPUnit versions. Preserve their datasets and assertions.

Developed in: โ€‹https://github.com/WordPress/wordpress-develop/pull/14392

Props rejaulalomkhan.
See #66211.

Built from โ€‹https://develop.svn.wordpress.org/trunk@64443

19:02 Changeset [63592] by lancewillett
  • trunk/wp-includes/version.php

Tests: Make bookmark test data providers static.

Declare the data providers in tests/phpunit/tests/bookmark/ as public static for compatibility with newer PHPUnit versions. Preserve their datasets and assertions.

Developed in: โ€‹https://github.com/WordPress/wordpress-develop/pull/14391

Props rejaulalomkhan.
See #66211.

Built from โ€‹https://develop.svn.wordpress.org/trunk@64442

19:01 Changeset [63591] by lancewillett
  • trunk/wp-includes/version.php

Tests: Make admin test data providers static.

Declare the data providers in tests/phpunit/tests/admin/ as public static for compatibility with newer PHPUnit versions. Preserve their datasets and assertions. Update direct calls to the submenu provider to use self::.

Developed in: โ€‹https://github.com/WordPress/wordpress-develop/pull/14389

Props rejaulalomkhan.
See #66211.

Built from โ€‹https://develop.svn.wordpress.org/trunk@64441

18:54 Changeset [63590] by lancewillett
  • trunk/wp-includes/version.php

Tests: Make function test data providers static.

Declare the data providers in tests/phpunit/tests/functions/ as public static for compatibility with newer PHPUnit versions. Preserve their datasets and assertions. Make the daylight-saving-time helper static so the timezone provider does not require an instance.

Developed in: โ€‹https://github.com/WordPress/wordpress-develop/pull/14382

Props rejaulalomkhan, huzaifaalmesbah.
See #66211.

Built from โ€‹https://develop.svn.wordpress.org/trunk@64440

18:51 Changeset [63589] by lancewillett
  • trunk/wp-includes/version.php

Tests: Make formatting test data providers static.

Declare the data providers in tests/phpunit/tests/formatting/ as public static for compatibility with newer PHPUnit versions. Preserve their datasets and assertions. Use static properties for the emoji CDN fixture values.

Developed in: โ€‹https://github.com/WordPress/wordpress-develop/pull/14381

Props rejaulalomkhan, mukesh27.
See #66211.

Built from โ€‹https://develop.svn.wordpress.org/trunk@64439

16:46 Changeset [63588] by jorgefilipecosta
  • trunk/wp-admin/options-connectors.php
  • trunk/wp-includes/version.php

Connectors: Preload the screen's REST API responses.

The Connectors screen requested the site settings, the OPTIONS response of the plugins endpoint, and the records of the AI plugin and of each connector's plugin only after its scripts loaded, which delayed its first render.
Adds the private _wp_connectors_preload_paths() callback to the wp_options_connectors_wp_admin_preload_paths filter, so these responses are embedded in the page. Only successful responses are preloaded, so the screen still requests the records of plugins that aren't installed.
The filter is applied by the page that the Gutenberg build generates, so the preloading takes effect once the pinned Gutenberg version includes โ€‹https://github.com/WordPress/gutenberg/pull/77353.

Developed in โ€‹https://github.com/WordPress/wordpress-develop/pull/11790 and โ€‹https://github.com/WordPress/gutenberg/pull/77353.

Props westonruter, wildworks, jorgefilipecosta, mukesh27, apermo, ugyensupport, gziolo, justlevine, peterwilsoncc, ellatrix, cbravobernal.
Fixes #65215.
Built from โ€‹https://develop.svn.wordpress.org/trunk@64438

16:18 Changeset [63587] by jorgefilipecosta
  • trunk/wp-includes/rest-api/endpoints/class-wp-rest-posts-controller.php
  • trunk/wp-includes/version.php

REST API: Correct the action-unfiltered-html link's target schema.

The target schema of the https://api.w.org/action-unfiltered-html link description object nested raw directly under content, without the type and properties keywords. raw isn't a JSON Schema keyword, so the schema put no constraint on content.
Wraps raw in an object schema, like the content property of the post schema, and adds a test for it.

Developed in โ€‹https://github.com/WordPress/wordpress-develop/pull/14362.

Follow-up to [43974].

Props jorgefilipecosta.
Fixes #66332.
Built from โ€‹https://develop.svn.wordpress.org/trunk@64437

04:59 Changeset [63586] by westonruter
  • trunk/wp-content/themes/twentyfifteen/inc/custom-header.php
  • trunk/wp-content/themes/twentytwenty/classes/class-twentytwenty-walker-comment.php
  • trunk/wp-includes/blocks.php
  • trunk/wp-includes/class-wp-http-requests-hooks.php
  • trunk/wp-includes/class-wp-script-modules.php
  • trunk/wp-includes/class-wp-theme-json.php
  • trunk/wp-includes/class-wp-url-pattern-prefixer.php
  • trunk/wp-includes/class-wpdb.php
  • trunk/wp-includes/compat-utf8.php
  • trunk/wp-includes/compat.php
  • trunk/wp-includes/customize/class-wp-customize-custom-css-setting.php
  • trunk/wp-includes/deprecated.php
  • trunk/wp-includes/formatting.php
  • trunk/wp-includes/functions.php
  • trunk/wp-includes/global-styles-and-settings.php
  • trunk/wp-includes/js/codemirror/fakejshint.js
  • trunk/wp-includes/kses.php
  • trunk/wp-includes/media.php
  • trunk/wp-includes/nav-menu-template.php
  • trunk/wp-includes/pluggable.php
  • trunk/wp-includes/script-loader.php
  • trunk/wp-includes/speculative-loading.php
  • trunk/wp-includes/style-engine.php
  • trunk/wp-includes/theme-previews.php
  • trunk/wp-includes/user.php
  • trunk/wp-includes/utf8.php
  • trunk/wp-includes/version.php
  • trunk/wp-load.php

Docs: Use @link instead of @see for URL references.

The WordPress inline documentation standards for PHP and JavaScript reserve @see for references to functions, methods, classes, and hooks, and use @link for URLs. While phpDocumentor and JSDoc both accept a URL in @see, core had used both forms for external references such as specifications, Trac tickets, and GitHub pull requests, so the remaining @see tags pointing to URLs are converted to @link across core, the bundled themes, core scripts, and the unit tests.

On the touched lines, @see is kept ahead of @link where both appear, per the standards; links to developer.wordpress.org pages for core functions in Twenty Twenty become @see references to those functions; and links that no longer resolve are updated. The block files synced from Gutenberg, the bundled pomo library, and other third-party code are left unchanged, and the HTML API is handled separately.

Developed in โ€‹https://github.com/WordPress/wordpress-develop/pull/10804.
Follow-up to r63569.

Props huzaifaalmesbah, westonruter, noruzzaman, shailu25.
See #65860.

Built from โ€‹https://develop.svn.wordpress.org/trunk@64436

10/16/2026:

23:47 Changeset [63585] by westonruter
  • trunk/wp-admin/includes/class-language-pack-upgrader.php
  • trunk/wp-admin/includes/class-plugin-upgrader.php
  • trunk/wp-admin/includes/class-theme-upgrader.php
  • trunk/wp-admin/includes/class-wp-automatic-updater.php
  • trunk/wp-admin/includes/class-wp-upgrader.php
  • trunk/wp-includes/version.php

Upgrade/Install: Add PHPStan types to the automatic updater.

The update offers and results handled by WP_Automatic_Updater are now typed by update type, with a type alias for each kind of offer and result and a conditional return type for WP_Automatic_Updater::update(). A conditional parameter type for the offer would be preferable, but PHPStan only narrows the outermost condition of a nested conditional parameter type and resolves the others to never, so the offer is instead narrowed with inline tags in each branch that reads it, alongside comments to replace them once nested conditions are supported.

Typing the results showed that several documented return types never matched the code. The null|WP_Error documented for update() since r32655 omitted both the false returned when an update is declined and the result passed through from the upgrader. Because Plugin_Upgrader, Theme_Upgrader and Language_Pack_Upgrader redeclare $result without a default, their upgrade() methods and the plugin and theme install() methods return null when the operation fails before the package is installed, which their documentation has omitted since r30758. The $update parameter of Language_Pack_Upgrader::upgrade() is also corrected to the update offer object that its callers pass.

Variables that PHPStan reported as possibly undefined are initialized, and a redundant $is_debug assignment from r58139 is removed. This resolves 7 baselined errors across the argument.type, return.type and variable.undefined identifiers.

Developed in โ€‹https://github.com/WordPress/wordpress-develop/pull/14361.
Follow-up to r11005, r25566, r30758, r32655, r58139, r63019, r63022, r63024.

See #65817.

Built from โ€‹https://develop.svn.wordpress.org/trunk@64435

22:49 Changeset [63584] by SergeyBiryukov
  • trunk/wp-includes/class-wpdb.php
  • trunk/wp-includes/version.php

Database: Correct uppercasing the SQL mode values in wpdb::set_sql_mode().

wpdb::set_sql_mode() aimed to convert lowercased values to uppercase before comparing them with the incompatible_sql_modes filter results, but the case conversion was erroneously performed on numeric keys of the modes array rather than the string values. This commit ensures the array values are converted as expected.

Follow-up to r27072.

Props DavidAnderson, SergeyBiryukov.
Fixes #66326.
Built from โ€‹https://develop.svn.wordpress.org/trunk@64434

22:47 Changeset [63583] by jorgefilipecosta
  • trunk/wp-includes/rest-api/endpoints/class-wp-rest-posts-controller.php
  • trunk/wp-includes/version.php

REST API: Add the homepage and posts page action links to pages.

Adds the action-set-homepage and action-set-posts-page links to the published pages the current user can set as the homepage or as the posts page, in the edit context, and their link description objects to the pages schema. Both change the site settings, so they require manage_options, and the current homepage and posts page get neither. The editor uses them for its "Set as homepage" and "Set as posts page" actions.

Developed in โ€‹https://github.com/WordPress/wordpress-develop/pull/14347 and โ€‹https://github.com/WordPress/gutenberg/pull/84932.

Follow-up to [64343].

Props jorgefilipecosta, oandregal, chihsuan.
Fixes #66327.
Built from โ€‹https://develop.svn.wordpress.org/trunk@64433

22:42 Changeset [63582] by jorgefilipecosta
  • trunk/wp-includes/connectors.php
  • trunk/wp-includes/version.php

Connectors: Match the settings route the way the REST server does.

_wp_connectors_rest_settings_dispatch() now matches the request route with the REST server's own pattern, to fix possible inconsistencies with the server's route matching.

Follow-up to [61749], [62684].

Props mcliwanow, jorgefilipecosta.
Fixes #66330.
Built from โ€‹https://develop.svn.wordpress.org/trunk@64432

21:47 Changeset [63581] by lancewillett
  • trunk/wp-includes/class-wp-recovery-mode.php
  • trunk/wp-includes/version.php

Bootstrap/Load: Recognize network plugins in recovery mode.

Normalize the absolute paths returned by wp_get_active_network_plugins() with plugin_basename() before comparing them with extension slugs. Match single-file plugins by basename as well as plugins in directories.

Add multisite regression tests for network-plugin errors and unrelated plugins with similar names. This corrects network-plugin detection without enabling recovery mode on multisite.

Developed in: โ€‹https://github.com/WordPress/wordpress-develop/pull/14355

Props huzaifaalmesbah.
Fixes #66328.

Built from โ€‹https://develop.svn.wordpress.org/trunk@64431

21:43 Changeset [63580] by lancewillett
  • trunk/wp-includes/version.php

Tests: Cover paused and deactivated plugin notices.

Verify notice messages, types, and links, and the conditions that suppress them. Cover site and network deactivation lists and their cleanup after display. Restore the super-admin grant after the test class.

Developed in: โ€‹https://github.com/WordPress/wordpress-develop/pull/14172

Props huzaifaalmesbah.
See #65819.

Built from โ€‹https://develop.svn.wordpress.org/trunk@64430

21:25 Changeset [63579] by lancewillett
  • trunk/wp-includes/version.php

Tests: Cover unapproved comment author email lookup.

Add coverage for wp_get_unapproved_comment_author_email(). Verify that a valid moderation hash for a recent comment takes precedence over the commenter cookie, and that missing, invalid, or expired query arguments fall back to the cookie. Cover the empty result when neither source is available.

Developed in: โ€‹https://github.com/WordPress/wordpress-develop/pull/14334

Props rejaulalomkhan.
See #65819.

Built from โ€‹https://develop.svn.wordpress.org/trunk@64429

21:23 Changeset [63578] by lancewillett
  • trunk/wp-includes/version.php

Tests: Add coverage for author_can().

Verify that capability checks use the post author independently of the current user, accept post objects and IDs, and forward extra arguments for meta capabilities. Cover missing posts and missing authors.

Developed in: โ€‹https://github.com/WordPress/wordpress-develop/pull/14333

Props rejaulalomkhan.
See #65819.

Built from โ€‹https://develop.svn.wordpress.org/trunk@64428

21:13 Changeset [63577] by lancewillett
  • trunk/wp-includes/version.php

Tests: Cover default tag-cloud count scaling.

Add coverage for default_topic_count_scale(), including zero, rounding, and numeric-string inputs. Verify that wp_generate_tag_cloud() uses logarithmic scaling for font sizes by default.

Developed in: โ€‹https://github.com/WordPress/wordpress-develop/pull/14332

Props rejaulalomkhan.
See #65819.

Built from โ€‹https://develop.svn.wordpress.org/trunk@64427

21:02 Changeset [63576] by lancewillett
  • trunk/wp-includes/version.php

Tests: Add coverage for separate_comments().

Cover default groups, comment types, combined pings, and empty and custom types. Verify that grouped elements retain references to the input array.

Developed in: โ€‹https://github.com/WordPress/wordpress-develop/pull/14330

Props rejaulalomkhan.
See #65819.

Built from โ€‹https://develop.svn.wordpress.org/trunk@64426

20:59 Changeset [63575] by lancewillett
  • trunk/wp-includes/version.php

Tests: Cover updated and removed oEmbed providers.

Verify that ReverbNation URL variants resolve to the legacy endpoint and that Someecards and some.ly URLs no longer match trusted providers. Disable discovery to keep the checks independent of network requests.

Developed in: โ€‹https://github.com/WordPress/wordpress-develop/pull/14329

Props huzaifaalmesbah.
See #65819, #66079, #66078.

Built from โ€‹https://develop.svn.wordpress.org/trunk@64425

20:48 Changeset [63574] by lancewillett
  • trunk/wp-includes/version.php

Tests: Add coverage for get_the_category_list().

Cover unordered and separated lists, parent-category display modes, permalink-dependent link attributes, and the current-post default. Verify empty results and the arguments and output of the the_category_list and the_category filters.

Developed in: โ€‹https://github.com/WordPress/wordpress-develop/pull/14325

Props huzaifaalmesbah.
See #65819.

Built from โ€‹https://develop.svn.wordpress.org/trunk@64424

20:46 Changeset [63573] by lancewillett
  • trunk/wp-includes/version.php

Tests: Add coverage for Walker_Nav_Menu_Checklist.

Cover nested list markup, menu-item checkbox and hidden inputs, disabled states, label selection, escaping, and page post states. Restore the navigation-menu globals after each test.

Developed in: โ€‹https://github.com/WordPress/wordpress-develop/pull/14346

Props shailu25.
See #65819.

Built from โ€‹https://develop.svn.wordpress.org/trunk@64423

20:45 Changeset [63572] by lancewillett
  • trunk/wp-includes/version.php

Tests: Add coverage for WP_Widget_Links.

Cover bookmark rendering, category filtering, widget arguments, settings sanitization, and saved and default form values. Delete shared bookmark fixtures after the class to keep later tests isolated.

Developed in: โ€‹https://github.com/WordPress/wordpress-develop/pull/14344

Props shailu25.
See #65819.

Built from โ€‹https://develop.svn.wordpress.org/trunk@64422

20:44 Changeset [63571] by lancewillett
  • trunk/wp-includes/version.php

Tests: Add coverage for WP_Widget_Block.

Cover rendered block content, legacy widget class names, content and class-name filters, capability-dependent HTML sanitization, saved form values, and Customizer width behavior.

Developed in: โ€‹https://github.com/WordPress/wordpress-develop/pull/14343

Props shailu25.
See #65819.

Built from โ€‹https://develop.svn.wordpress.org/trunk@64421

20:42 Changeset [63570] by lancewillett
  • trunk/wp-includes/version.php

Tests: Add coverage for WP_Nav_Menu_Widget.

Cover menu rendering, missing-menu behavior, title and argument filters, navigation wrappers, settings sanitization, and form output, including the Customizer context.

Developed in: โ€‹https://github.com/WordPress/wordpress-develop/pull/14342

Props shailu25.
See #65819.

Built from โ€‹https://develop.svn.wordpress.org/trunk@64420

20:41 Changeset [63569] by lancewillett
  • trunk/wp-includes/version.php

Tests: Correct missing-URL coverage for the RSS widget.

Fix the misspelled url key so the missing-URL dataset actually removes the setting. Remove an unused branch from the successful-URL test and declare both data providers static.

Developed in: โ€‹https://github.com/WordPress/wordpress-develop/pull/14341

Props shailu25.
See #65819.

Built from โ€‹https://develop.svn.wordpress.org/trunk@64419

20:40 Changeset [63568] by lancewillett
  • trunk/wp-includes/version.php

Tests: Strengthen Recent Comments widget XHTML coverage.

Assert that the Recent Comments widget still renders five comments in XHTML mode, alongside the existing check that it omits the navigation wrapper. This prevents empty output from satisfying the negative assertion.

Developed in: โ€‹https://github.com/WordPress/wordpress-develop/pull/14338

Props shailu25.
See #65819.

Built from โ€‹https://develop.svn.wordpress.org/trunk@64418

20:28 Changeset [63567] by lancewillett
  • trunk/wp-includes/version.php

Tests: Add coverage for wp_sprintf() and wp_sprintf_l().

Cover numbered and missing arguments, literal percent signs, formatting specifiers, and fragment filtering in wp_sprintf(). Verify list formatting, suffix preservation, and customizable delimiters in wp_sprintf_l().

Developed in: โ€‹https://github.com/WordPress/wordpress-develop/pull/14324

Props huzaifaalmesbah.
See #65819.

Built from โ€‹https://develop.svn.wordpress.org/trunk@64417

20:25 Changeset [63566] by lancewillett
  • trunk/wp-includes/version.php

Tests: Add coverage for bookmark sanitization.

Cover field normalization, context-specific filters and escaping in sanitize_bookmark_field(). Test array and object inputs to sanitize_bookmark(), including preservation of unknown fields, omission of missing fields, and forwarding the bookmark ID and context to filters.

Developed in: โ€‹https://github.com/WordPress/wordpress-develop/pull/14323

Props huzaifaalmesbah.
See #65819.

Built from โ€‹https://develop.svn.wordpress.org/trunk@64416

20:21 Changeset [63565] by lancewillett
  • trunk/wp-includes/version.php

Tests: Add coverage for WP_Fatal_Error_Handler.

Cover error detection, handled error types, early returns, and default error messages and filters. Isolate tests that depend on sandbox or header state, explicitly establish their preconditions, and verify the error details and response arguments passed to wp_die().

Developed in: โ€‹https://github.com/WordPress/wordpress-develop/pull/14163

Props huzaifaalmesbah.
See #65819.

Built from โ€‹https://develop.svn.wordpress.org/trunk@64415

20:15 Changeset [63564] by lancewillett
  • trunk/wp-includes/version.php

Tests: Add coverage for paused-theme recovery helpers.

Cover paused-theme detection, stored error retrieval, and resuming themes. Verify error removal preserves other paused themes, inactive themes do not redirect, and active themes load their functions.php file while discarding its output and generating a valid error nonce.

Developed in: โ€‹https://github.com/WordPress/wordpress-develop/pull/14162

Props huzaifaalmesbah.
See #65819.

Built from โ€‹https://develop.svn.wordpress.org/trunk@64414

20:14 Changeset [63563] by westonruter
  • trunk/wp-includes/version.php
  • trunk/wp-includes/widgets/class-wp-widget-categories.php

Widgets: Use booleans in Categories widget arguments.

The Categories widget passed show_count and hierarchical to wp_list_categories() and wp_dropdown_categories() as the numeric strings '0' and '1', while both functions document these arguments as bool|int. They are now passed as booleans, matching what the Categories block already passes. Core only checks these values for truthiness, so output is unchanged; a callback on the widget_categories_args or widget_categories_dropdown_args filter that compares them strictly to '1' or '0' is the only code affected, which is noted in the filters' @since tags.

The arguments passed to those filters, along with the widget's display arguments and instance settings, are now documented as hashes so that static analysis can type them. The count, hierarchical and dropdown settings are documented as the 0 or 1 that update() stores, while widget() keeps reading them loosely for instances saved before WordPress 2.8, which stored booleans. A missing title in the submitted settings no longer triggers an undefined array key warning in update(), which can happen when REST API form data omits it.

Developed in โ€‹https://github.com/WordPress/wordpress-develop/pull/8071.
Follow-up to r10809, r41685, r64331.

Props westonruter, marian1.
See #65817, #65860.
Fixes #62762.

Built from โ€‹https://develop.svn.wordpress.org/trunk@64413

19:26 Changeset [63562] by lancewillett
  • trunk/wp-includes/version.php

Tests: Add coverage for WP_Recovery_Mode.

Test recovery mode initialization, error handling, recovery emails, plugin and theme error storage, redirects, session exit, and expired-key cleanup. Cover filter behavior and invalid inputs, and isolate tests that depend on headers or process state.

Developed in: โ€‹https://github.com/WordPress/wordpress-develop/pull/14160

Props huzaifaalmesbah.
See #65819.

Built from โ€‹https://develop.svn.wordpress.org/trunk@64412

18:59 Changeset [63561] by lancewillett
  • trunk/wp-includes/version.php

Tests: Cover HTTP encoding and compression helpers.

Add coverage for WP_Http_Encoding compression, decompression, optional gzip headers, invalid input, encoding negotiation, filter arguments, response headers, and compression availability.

Generate compressed fixtures after checking required functions, and use valid gzip header checksums.

Developed in: โ€‹https://github.com/WordPress/wordpress-develop/pull/14174

Props huzaifaalmesbah.
See #65819.

Built from โ€‹https://develop.svn.wordpress.org/trunk@64411

18:20 Changeset [63560] by lancewillett
  • trunk/wp-includes/version.php

Build/Test Tools: Run the wp.updates QUnit tests.

Load the existing updates fixture, implementation, and tests in the QUnit runner so their assertions run against both development and minified scripts.

Populate the fixture's update totals to match its markup and prevent wp.updates.decrementCount() from throwing when it accesses the counts.

Developed in: โ€‹https://github.com/WordPress/wordpress-develop/pull/14319

Props dlocc.
Fixes #66324.

Built from โ€‹https://develop.svn.wordpress.org/trunk@64410

18:14 Changeset [63559] by lancewillett
  • trunk/wp-includes/version.php

Build/Test Tools: Cover privacy page creation and policy copying.

Add browser tests for creating a draft Privacy Policy page and selecting it in settings. Restore the original setting and permanently delete the test-created page during cleanup.

Verify the real clipboard contains the suggested policy text without tutorial or toolbar text, including a second copy while the success notice is visible.

Developed in: โ€‹https://github.com/WordPress/wordpress-develop/pull/8246

Props juhise, lucatume.
See #52895.

Built from โ€‹https://develop.svn.wordpress.org/trunk@64409

17:56 Changeset [63558] by lancewillett
  • trunk/wp-includes/version.php

Build/Test Tools: Wait for login autofocus in the installation test.

Wait for the username field to receive focus before filling the login credentials. This prevents the delayed focus callback in wp-login.php from moving focus during password entry.

Keep the installation and login assertions unchanged.

Developed in: โ€‹https://github.com/WordPress/wordpress-develop/pull/14220

Props lucatume.
See #52895.

Built from โ€‹https://develop.svn.wordpress.org/trunk@64408

17:24 Changeset [63557] by lancewillett
  • trunk/wp-includes/version.php

Build/Test Tools: Verify published post content on the front end.

Extend the existing post publication E2E test to follow the View link from the posts list and verify that the published title and body are visible on the front end.

Carry forward the rendering check from โ€‹https://github.com/WordPress/wordpress-develop/pull/7998 without adding another publication test.

Developed in: โ€‹https://github.com/WordPress/wordpress-develop/pull/14206

Props jayson31, lucatume.
See #52895.

Built from โ€‹https://develop.svn.wordpress.org/trunk@64407

17:20 Changeset [63556] by lancewillett
  • trunk/wp-includes/version.php

Build/Test Tools: Wait for installation test cleanup to take effect.

After restoring wp-config.php and removing the temporary installation tables, wait for a fresh request to wp-login.php to display the login form. This prevents the following E2E test from reaching the installer while PHP still serves the previous configuration.

Retry only the readiness navigation within a bounded timeout. Keep configuration restoration, table cleanup, and the installation assertions unchanged.

Developed in: โ€‹https://github.com/WordPress/wordpress-develop/pull/14205

Props lucatume.
Fixes #66290.

Built from โ€‹https://develop.svn.wordpress.org/trunk@64406

17:18 Changeset [63555] by jorbin
  • trunk/wp-includes/version.php

Fix DB Version.

Follow-up to r64402.

Unprops Jorbin.
See #64498.

Built from โ€‹https://develop.svn.wordpress.org/trunk@64405

17:12 Changeset [63554] by lancewillett
  • trunk/wp-includes/version.php

Tests: Cover user field sanitization.

Add direct coverage for sanitize_user_field() integer casting, raw and non-string values, context-specific filters and their arguments, and HTML, attribute, JavaScript, and URL escaping.

Developed in: โ€‹https://github.com/WordPress/wordpress-develop/pull/14322

Props huzaifaalmesbah.
See #65819.

Built from โ€‹https://develop.svn.wordpress.org/trunk@64404

17:06 Changeset [63553] by lancewillett
  • trunk/wp-includes/version.php

Tests: Cover KSES attribute value validation.

Add direct coverage for wp_kses_check_attr_val() length, numeric, valueless, allowed-value, and callback constraints. Check boundaries, strict string matching, and callback arguments, and verify that wp_kses() keeps valid attributes and removes invalid ones.

Developed in: โ€‹https://github.com/WordPress/wordpress-develop/pull/14321

Props huzaifaalmesbah.
See #65819.

Built from โ€‹https://develop.svn.wordpress.org/trunk@64403

17:04 Changeset [63552] by jorbin
  • trunk/wp-admin/includes/schema.php
  • trunk/wp-admin/includes/upgrade.php
  • trunk/wp-admin/network/site-settings.php
  • trunk/wp-admin/options-permalink.php
  • trunk/wp-includes/class-wp-post-type.php
  • trunk/wp-includes/class-wp-query.php
  • trunk/wp-includes/class-wp-rewrite.php
  • trunk/wp-includes/class-wp.php
  • trunk/wp-includes/default-filters.php
  • trunk/wp-includes/formatting.php
  • trunk/wp-includes/option.php
  • trunk/wp-includes/post.php
  • trunk/wp-includes/query.php
  • trunk/wp-includes/rewrite.php
  • trunk/wp-includes/version.php

Rewrite Rules: Add support for random content redirects.

Introduce a random query var and /random/ rewrite rules[1], built on the existing rewrite, WP, and query APIs, that redirect to a randomly selected published post. Random requests[2] work for the whole site, taxonomy terms, authors and post type archives, with the base configurable on the Permalinks screen. A new randomable post type argument controls which content is eligible, and the selection runs through the main query so it remains filterable and costs a single database query.

The Random Base[3] is translatable and stored in the rewrite rules. This means that rewrite rules are regenerated when translations are updated or the Site Language is changed. Also, if a post or page is published that would result in the same slug as the Random Base, that content gets priority and nothing will be random[4].

This reintroduces the feature committed in r63767 and reverted in r63906.

1) Literally /random/, not just rules that are random. Though that could be fun too!
2) Not "random" as in unpredictable, but random as in someone wanted it to be random.
3) It's intentionally "random" but it could also intentionally be "aleatoria" or "karkovice".
4) The other random permalinks will still work, so not nothing. But is anything really random?

Developed in: โ€‹https://github.com/WordPress/wordpress-develop/pull/14018

Follow-up to r63767, r63906.

Props jorbin, peterwilsoncc, westonruter, mukesh27, annezazu, mlaetitia, mcsf, johnbillion, TobiasBg, solankisoftware, sajib1223, ellatrix, matt.
See #64498.

Built from โ€‹https://develop.svn.wordpress.org/trunk@64402

17:02 Changeset [63551] by lancewillett
  • trunk/wp-includes/version.php

Tests: Trim repeated metadata lazy-loader test cases.

Remove the empty-string and empty-array datasets from data_check_values(). Retain null, false, and a nonempty value to cover cache priming and unchanged pass-through values in WP_Metadata_Lazyloader::lazyload_meta_callback().

Follow-up to [64377].

Developed in: โ€‹https://github.com/WordPress/wordpress-develop/pull/14318

Props huzaifaalmesbah.
See #65819.

Built from โ€‹https://develop.svn.wordpress.org/trunk@64401

17:00 Changeset [63550] by lancewillett
  • trunk/wp-includes/version.php

Tests: Remove duplicate matches-map callback tests.

Remove the three direct WP_MatchesMapRegex::callback() cases and their provider. The retained apply() datasets exercise the same callback path and cover match selection, URL encoding, and missing matches.

Follow-up to [64376].

Developed in: โ€‹https://github.com/WordPress/wordpress-develop/pull/14317

Props huzaifaalmesbah.
See #65819.

Built from โ€‹https://develop.svn.wordpress.org/trunk@64400

16:54 Changeset [63549] by lancewillett
  • trunk/wp-includes/version.php

Tests: Remove redundant template-global restoration.

Remove the backup properties and setup and teardown overrides from the locate_template() and _wp_is_template_path_allowed() test classes. The inherited teardown already resets $wp_stylesheet_path and $wp_template_path to null, superseding the custom restoration.

Follow-up to [64361].

Developed in: โ€‹https://github.com/WordPress/wordpress-develop/pull/14316

Props huzaifaalmesbah.
See #65819.

Built from โ€‹https://develop.svn.wordpress.org/trunk@64399

16:49 Changeset [63548] by lancewillett
  • trunk/wp-includes/version.php

Tests: Clarify category checklist walker assertion messages.

Describe tag order rather than nesting in two Walker_Category_Checklist assertion messages, matching what WP_HTML_Tag_Processor::next_tag() verifies. Leave the assertions unchanged.

Follow-up to [64381].

Developed in: โ€‹https://github.com/WordPress/wordpress-develop/pull/14315

Props huzaifaalmesbah.
See #65819.

Built from โ€‹https://develop.svn.wordpress.org/trunk@64398

16:47 Changeset [63547] by lancewillett
  • trunk/wp-includes/version.php

Tests: Clarify the allowed-options data provider name.

Rename data_invalid_new_allowed_options() to data_new_allowed_options_without_additions() and update its @dataProvider reference. The empty-array dataset is valid input that adds nothing, rather than invalid input. Preserve all datasets and assertions.

Follow-up to [64375].

Developed in: โ€‹https://github.com/WordPress/wordpress-develop/pull/14314

Props huzaifaalmesbah.
See #65819.

Built from โ€‹https://develop.svn.wordpress.org/trunk@64397

16:44 Changeset [63546] by lancewillett
  • trunk/wp-includes/version.php

Tests: Cover zero-slug category dropdown selection.

Verify that Walker_CategoryDropdown::start_el() leaves a category with slug '0' unselected when selected is false, and selects it when selected is '0'. Guard against loose comparisons selecting the wrong option.

Follow-up to [64379].

Developed in: โ€‹https://github.com/WordPress/wordpress-develop/pull/14313

Props huzaifaalmesbah.
See #65819.

Built from โ€‹https://develop.svn.wordpress.org/trunk@64396

16:02 Changeset [63545] by lancewillett
  • trunk/wp-includes/version.php

Tests: Cover preservation of an existing admin parent file.

Verify that get_admin_page_parent() returns an empty string while preserving $parent_file when no submenu matches. Also cover skipping a matching submenu when the existing parent file contains a query string.

Follow-up to [64374].

Developed in: โ€‹https://github.com/WordPress/wordpress-develop/pull/14312

Props huzaifaalmesbah.
See #65819.

Built from โ€‹https://develop.svn.wordpress.org/trunk@64395

15:56 Changeset [63544] by lancewillett
  • trunk/wp-includes/version.php

Tests: Strengthen Recent Posts and Archives widget assertions.

Check the name attributes for the Recent Posts number and date inputs, which are required to submit those settings. Verify that the widget_archives_dropdown_args filter changes the Archives dropdown label when it selects yearly archives.

Follow-up to [64359] and [64384].

Developed in: โ€‹https://github.com/WordPress/wordpress-develop/pull/14311

Props rejaulalomkhan.
See #65819.

Built from โ€‹https://develop.svn.wordpress.org/trunk@64394

15:50 Changeset [63543] by lancewillett
  • trunk/wp-includes/version.php

Tests: Expand post sitemap provider coverage.

Cover WP_Sitemaps_Posts subtype filtering, URL entries, timezone handling, pagination, page counts, and filters. Use fixed modified dates with distinct local and GMT values to catch incorrect lastmod calculations.

Developed in: โ€‹https://github.com/WordPress/wordpress-develop/pull/14167

Props huzaifaalmesbah.
See #65819.

Built from โ€‹https://develop.svn.wordpress.org/trunk@64393

15:47 Changeset [63542] by lancewillett
  • trunk/wp-includes/version.php

Tests: Separate theme feature validation tests.

Move test_register_theme_support_validation() and its provider into a separate WP_UnitTestCase class to avoid unnecessary theme-directory and cache setup. Preserve all eight datasets, assertions, and expected errors.

Developed in: โ€‹https://github.com/WordPress/wordpress-develop/pull/14306

Props sainathpoojary.
See #66074.

Built from โ€‹https://develop.svn.wordpress.org/trunk@64392

15:38 Changeset [63541] by lancewillett
  • trunk/wp-includes/version.php

Tests: Cover Calendar widget output and settings.

Add coverage for WP_Widget_Calendar registration, rendered output with and without posts, title filtering, unique wrapper IDs, title sanitization, and settings form fields. Preserve the original instance counter and global $posts state between tests.

Developed in: โ€‹https://github.com/WordPress/wordpress-develop/pull/14186

Props rejaulalomkhan, huzaifaalmesbah.
See #65819.

Built from โ€‹https://develop.svn.wordpress.org/trunk@64391

15:27 Changeset [63540] by lancewillett
  • trunk/wp-includes/version.php

Tests: Separate template ID sanitization tests.

Move the four _sanitize_template_id() datasets into a separate WP_UnitTestCase class to avoid unnecessary REST server and fixture setup. Preserve all assertions, expected values, and independent dataset reporting.

Developed in: โ€‹https://github.com/WordPress/wordpress-develop/pull/14345

Props sainathpoojary.
See #66074.

Built from โ€‹https://develop.svn.wordpress.org/trunk@64390

15:21 Changeset [63539] by lancewillett
  • trunk/wp-includes/version.php

Tests: Correct URL details parsing fixtures and labels.

Reverse the attribute order in the multiline icon fixture so it exercises a distinct input. Correct a dataset label and document the malformed description fixture and minimal HTML wrapper.

Follow-up to [64317].

Developed in: โ€‹https://github.com/WordPress/wordpress-develop/pull/14326

Props abcd95.
See #66074.

Built from โ€‹https://develop.svn.wordpress.org/trunk@64389

10:29 Changeset [63538] by jorgefilipecosta
  • trunk/wp-includes/abilities.php
  • trunk/wp-includes/abilities/class-wp-abilities-content.php
  • trunk/wp-includes/class-wp-post-type.php
  • trunk/wp-includes/post.php
  • trunk/wp-includes/version.php

Abilities API: Add the core/content-query ability.

Adds a read-only core/content-query ability that returns a page of the posts of one post type, optionally filtered by IDs, slugs, status, author, or parent. Until now, Core had no ability to read posts. The code lives in the new private WP_Abilities_Content class, and the ability is registered in a new content category.
Post types opt in with the new show_in_abilities argument of register_post_type(), which defaults to false. Only true exposes a post type, and the post and page post types set it.

Developed in โ€‹https://github.com/WordPress/ai/pull/739 and โ€‹https://github.com/WordPress/wordpress-develop/pull/12195.

Props jorgefilipecosta, gziolo, peterwilsoncc, ovidiu-galatan, justlevine, ugyensupport, dkotter, jason_the_adams, jasonbahl, jeffpaul.
Fixes #66268.
Built from โ€‹https://develop.svn.wordpress.org/trunk@64388

08:22 Changeset [63537] by wildworks
  • trunk/wp-content/themes/twentynineteen/.nvmrc
  • trunk/wp-content/themes/twentynineteen/package-lock.json
  • trunk/wp-content/themes/twentynineteen/package.json
  • trunk/wp-content/themes/twentynineteen/print.css
  • trunk/wp-content/themes/twentynineteen/sass/blocks/_blocks.scss
  • trunk/wp-content/themes/twentynineteen/sass/forms/_buttons.scss
  • trunk/wp-content/themes/twentynineteen/sass/mixins/_mixins-master.scss
  • trunk/wp-content/themes/twentynineteen/sass/navigation/_menu-main-navigation.scss
  • trunk/wp-content/themes/twentynineteen/sass/site/header/_site-featured-image.scss
  • trunk/wp-content/themes/twentynineteen/sass/site/header/_site-header.scss
  • trunk/wp-content/themes/twentynineteen/sass/site/primary/_comments.scss
  • trunk/wp-content/themes/twentynineteen/sass/site/secondary/_widgets.scss
  • trunk/wp-content/themes/twentynineteen/sass/typography/_headings.scss
  • trunk/wp-content/themes/twentynineteen/sass/variables-site/_colors.scss
  • trunk/wp-content/themes/twentynineteen/style-editor.css
  • trunk/wp-content/themes/twentynineteen/style-editor.scss
  • trunk/wp-content/themes/twentynineteen/style-rtl.css
  • trunk/wp-content/themes/twentynineteen/style.css
  • trunk/wp-includes/version.php

Twenty Nineteen: Replace node-sass with sass

Twenty Nineteen now compiles its stylesheets with the actively maintained sass package instead of the deprecated node-sass, which allows the theme to move to Node.js 24.x without changing the compiled CSS output.

Developed in: โ€‹https://github.com/WordPress/wordpress-develop/pull/12510

Props adrianduffell, cyrusblake89, debarghyabanerjee, desrosj, karmatosed, rejaulalomkhan, sabernhardt, sainathpoojary, wildworks.

Fixes #63013.
Built from โ€‹https://develop.svn.wordpress.org/trunk@64387

05:09 Changeset [63536] by luisherranz
  • trunk/wp-includes/interactivity-api/class-wp-interactivity-api-directives-processor.php
  • trunk/wp-includes/interactivity-api/class-wp-interactivity-api.php
  • trunk/wp-includes/interactivity-api/class-wp-interactivity-dangerous-html.php
  • trunk/wp-includes/interactivity-api/interactivity-api.php
  • trunk/wp-includes/version.php
  • trunk/wp-settings.php

Interactivity API: Add server-side processing for the data-wp-html directive.

Adds server-side processing for the data-wp-html directive, whose client implementation was added in Gutenberg, so that trusted HTML produced in PHP is present in the server-rendered page.

The new wp_interactivity_as_dangerous_html() function returns a WP_Interactivity_Dangerous_HTML token that marks an HTML string as trusted. Only these tokens render. The HTML is neither sanitized nor processed for directives, and it is never included in the data printed for the client, where a token is encoded as {}. An unserialized token holds no HTML and does not render.

When the directive cannot render, the element keeps its existing content and a _doing_it_wrong() notice is raised. That happens when the value is not a token, when the element cannot hold content, or when the element also uses data-wp-text or data-wp-each on a template.

Also adds WP_Interactivity_API_Directives_Processor::set_raw_content_between_balanced_tags(), which replaces the content between balanced tags without escaping it.

Props darerodz.
Fixes #66246.
Built from โ€‹https://develop.svn.wordpress.org/trunk@64386

03:31 Changeset [63535] by andrewserong
  • trunk/wp-includes/block-editor.php
  • trunk/wp-includes/version.php

Editor: Skip auto-attaching media when attachment pages are enabled.

The block editor attaches unattached images in Image and Gallery blocks to the post when the post is saved. When attachment pages are enabled, attaching an image moves its attachment page to a URL under that post, and
the old attachment page URL then returns a 404.

This adds an autoAttachMediaEnabled setting to get_default_block_editor_settings(). It is false when the wp_attachment_pages_enabled option is on, and true otherwise. Sites can still change it with the
block_editor_settings_all filter.

Developed in: โ€‹https://github.com/WordPress/wordpress-develop/pull/14308

Props faisalahammad, rejaulalomkhan, andrewserong, ramonopoly, padams.
Fixes #66321.

Built from โ€‹https://develop.svn.wordpress.org/trunk@64385

Note: See TracTimeline for information about the timeline view.