Commit Graph

52287 Commits

Author SHA1 Message Date
Weston Ruter
3ec4e4a641 Login and Registration: Update logo from blue to gray to match new design.
Developed in https://github.com/WordPress/wordpress-develop/pull/11026

Props juanfra, westonruter, jeffpaul, mukesh27, audrasjb, joedolson, dd32, davidbaumwald, fabiankaegy, huzaifaalmesbah, Joen, butterflymedia, noruzzaman, karmatosed, ozgursar, fcoveram, tusharaddweb, darshitrajyaguru97.
See #64308.
Fixes #64708.

Built from https://develop.svn.wordpress.org/trunk@61989


git-svn-id: http://core.svn.wordpress.org/trunk@61271 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2026-03-12 14:56:50 +00:00
ellatrix
04092cb0cc Editor: Bump pinned hash for the Gutenberg repository.
This updates the pinned hash from the `gutenberg` from `9b8144036fa5faf75de43d4502ff9809fcf689ad` to `8c78d87453509661a9f28f978ba2c242d515563b`.

The following changes are included:

- Navigation Editor: Allow any blocks to be inserted by gating contentOnly insertion rules to section blocks (https://github.com/WordPress/gutenberg/pull/76189)
- Add `fetchpriority=low` to `IMG` tags in collapsed Details blocks (https://github.com/WordPress/gutenberg/pull/76269)
- Connectors: Add logo URL support for custom AI providers (https://github.com/WordPress/gutenberg/pull/76190)
- Cover Block: Add a playlist parameter to loop YouTube background videos. (https://github.com/WordPress/gutenberg/pull/76004)
- Connectors: Memoize getConnectors selector (https://github.com/WordPress/gutenberg/pull/76339)
- HTML Block: Fix broken layout (https://github.com/WordPress/gutenberg/pull/76278)
- Tests: Skip connector logo URL tests when AI Client is unavailable (https://github.com/WordPress/gutenberg/pull/76343)
- Navigation Overlay: Explicitly set fetchpriority for images (https://github.com/WordPress/gutenberg/pull/76208)
- Connectors: Show API key source for env vars and wp-config constants (https://github.com/WordPress/gutenberg/pull/76355)
- Connectors: Move API key validation and masking to REST dispatch level (https://github.com/WordPress/gutenberg/pull/76327)
- Connectors: Replace apiFetch with core-data store selectors (https://github.com/WordPress/gutenberg/pull/76333)
- Do not sync local attributes (https://github.com/WordPress/gutenberg/pull/76267)
- Add `fetchpriority=low` to `IMG` tags in collapsed Accordion Item blocks (https://github.com/WordPress/gutenberg/pull/76336)
- Implement disconnection debounce after initial connection (https://github.com/WordPress/gutenberg/pull/76114)
- Allow Post Content to be edited when 'Show template' is active and Post content is nested in a Template Part (https://github.com/WordPress/gutenberg/pull/76305)
- Fix: Document Bar: Back button flickers (https://github.com/WordPress/gutenberg/pull/76320)
- RTC: Move event hooks from editor to core-data (https://github.com/WordPress/gutenberg/pull/76358)
- fix(navigation): prevent right-justified submenu overflow in custom overlays (https://github.com/WordPress/gutenberg/pull/76360)
- Connectors: Add connectors registry for extensibility (https://github.com/WordPress/gutenberg/pull/76364)
- Connectors: Add empty state when no connectors are registered (https://github.com/WordPress/gutenberg/pull/76375)
- Temp: Disable RTC in the site editor (https://github.com/WordPress/gutenberg/pull/76223)
- Connectors: Add AI Experiments plugin callout with install/activate functionality (https://github.com/WordPress/gutenberg/pull/76379)
- Editor: Polish real-time collaboration presence UI and move Avatar to editor package (https://github.com/WordPress/gutenberg/pull/75652) (https://github.com/WordPress/gutenberg/pull/76365)
- RTC: Add collaborator selection highlighting in rich text (https://github.com/WordPress/gutenberg/pull/76107)
- Sync changes from `wp_enqueue_global_styles()` to Gutenberg override (https://github.com/WordPress/gutenberg/pull/76127)
- [RTC] Fix performance regression on post save (https://github.com/WordPress/gutenberg/pull/76370)
- Media: Enable AVIF support for client-side uploads (https://github.com/WordPress/gutenberg/pull/76371)
- Connectors: Move plugin status computation to script module data (https://github.com/WordPress/gutenberg/pull/76409)
- Revisions: Skip rendered fields in REST API responses (https://github.com/WordPress/gutenberg/pull/76347)
- E2E Tests: Add connector setup flow tests with test AI provider (https://github.com/WordPress/gutenberg/pull/76433)
- RTC: Place sync connection modal in front of popover (https://github.com/WordPress/gutenberg/pull/76431)
- Connectors: Sync PHP code with WordPress Core (https://github.com/WordPress/gutenberg/pull/76443)
- Editor: Show own presence in collaborative editing sessions (https://github.com/WordPress/gutenberg/pull/76413) (https://github.com/WordPress/gutenberg/pull/76445)

A full list of changes can be found on GitHub: 9b8144036f…8c78d87453509661a9f28f978ba2c242d515563b.

Log created with:

git log --reverse --format="- %s" 9b8144036fa5faf75de43d4502ff9809fcf689ad..8c78d87453509661a9f28f978ba2c242d515563b | sed 's|#\([0-9][0-9]*\)|https://github.com/WordPress/gutenberg/pull/\1|g; /github\.com\/WordPress\/gutenberg\/pull/!d' | pbcopy

See #64595.

Built from https://develop.svn.wordpress.org/trunk@61988


git-svn-id: http://core.svn.wordpress.org/trunk@61270 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2026-03-12 13:58:51 +00:00
ellatrix
07202a2d74 REST API: Support nested _fields in revisions controller.
Use `rest_is_field_included()` instead of `in_array()` for `content`, `title`, `excerpt`, and `guid` fields in `WP_REST_Revisions_Controller`. This lets clients request specific sub-fields (e.g. `_fields=content.raw`) and skip expensive `the_content` rendering.

The [REST API `_fields` documentation](https://developer.wordpress.org/rest-api/using-the-rest-api/global-parameters/#_fields) states that nested fields are supported using dot notation. However, the revisions controller uses `in_array()` which doesn't match nested keys like `content.raw`.

Developed in: https://github.com/WordPress/wordpress-develop/pull/11230.

Props ellatrix, andrewserong, mukeshpanchal27.
Fixes #64844.
Built from https://develop.svn.wordpress.org/trunk@61987


git-svn-id: http://core.svn.wordpress.org/trunk@61269 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2026-03-12 13:22:43 +00:00
ellatrix
3263102318 Real-time collaboration: disable for site editor.
In performance tests, editing large documents in the site-editor suite (loading large-post.html) can cause performance tests in the site editor to time out with memory errors.

Developed in: https://github.com/WordPress/wordpress-develop/pull/11181.

Props alecgeatches, mukesh27.
See #64622.
Built from https://develop.svn.wordpress.org/trunk@61986


git-svn-id: http://core.svn.wordpress.org/trunk@61268 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2026-03-12 13:14:41 +00:00
jorgefilipecosta
3c778c6204 Connectors: Add API key source detection and refactor REST behaviour/masking.
Add `_wp_connectors_get_api_key_source()` to detect whether an API key is configured via environment variable, PHP constant, or database. The UI uses this to show the key source and hide "Remove and replace" for externally configured keys.
Replace `_wp_connectors_validate_keys_in_rest()` and `_wp_connectors_get_real_api_key()` with a single `rest_post_dispatch` handler, `_wp_connectors_rest_settings_dispatch()`, that masks keys in all `/wp/v2/settings` responses and validates on POST/PUT, reverting invalid keys.
Simplify `_wp_register_default_connector_settings()` by replacing the closure-based `sanitize_callback` and `option_` mask filter with plain `sanitize_text_field`, since masking is now handled at the REST layer.
Enrich `_wp_connectors_get_connector_script_module_data()` to expose `keySource`, `isConnected`, `logoUrl`, and plugin `isInstalled` / `isActivated` status to the admin screen.
Update `_wp_connectors_pass_default_keys_to_ai_client()` to skip keys sourced from environment variables or constants and read the database directly via `get_option()`.
Set `_wp_connectors_init` priority to 15 so the registry is ready before settings are registered at priority 20.

Backports https://github.com/WordPress/gutenberg/pull/76266.
Backports https://github.com/WordPress/gutenberg/pull/76327.

Props jorgefilipecosta, gziolo, swissspidy, flixos90.
Fixes #64819.
Built from https://develop.svn.wordpress.org/trunk@61985


git-svn-id: http://core.svn.wordpress.org/trunk@61267 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2026-03-12 12:06:47 +00:00
gziolo
2cfdcc6cb6 REST API: Fix finalize endpoint tests in Attachments controller.
Enable client-side media processing in the three `test_finalize_item*`
tests so the `/finalize` route is registered before dispatching requests.
Without this, the route does not exist and all assertions fail with
`rest_no_route`.

Extracts the repeated filter-and-reinitialize pattern into a shared
`enable_client_side_media_processing()` helper, used by both the
sideload and finalize tests.

Follow-up to [61982].


Built from https://develop.svn.wordpress.org/trunk@61984


git-svn-id: http://core.svn.wordpress.org/trunk@61266 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2026-03-12 08:04:41 +00:00
gziolo
12608ab6d7 Connectors: Remove redundant helper and improve PHPDoc
Remove `_wp_connectors_get_connector_settings()` and inline `ksort()`
into `_wp_connectors_get_connector_script_module_data()`. Expand
`@return` and `@phpstan-return` array shapes for `wp_get_connector()`
and `wp_get_connectors()`. Make `logo_url` and `credentials_url` truly
optional. Rename test class to `wpGetConnectors`.

Developed in https://github.com/WordPress/wordpress-develop/pull/11227.

Follow-up to [61943].

Props gziolo, westonruter.
Fixes #64791.


Built from https://develop.svn.wordpress.org/trunk@61983


git-svn-id: http://core.svn.wordpress.org/trunk@61265 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2026-03-12 07:55:48 +00:00
Adam Silverstein
a70378095d REST API: Add finalize endpoint to WP_REST_Attachments_Controller.
Introduce a `POST /wp/v2/media/{id}/finalize` REST API endpoint that re-triggers the `wp_generate_attachment_metadata` filter with context `'update'` after client-side media processing completes. This ensures server-side plugins (watermarking, CDN sync, custom sizes, etc.) can post-process attachments when client-side processing is active.

The endpoint reuses `edit_media_item_permissions_check` for authorization and is only registered when `wp_is_client_side_media_processing_enabled()` returns true.

See https://github.com/WordPress/gutenberg/pull/74913.
See https://github.com/WordPress/gutenberg/issues/74358.

Props adamsilverstein, westonruter, mukesh27, divyeshpatel01.
Fixes #64804.


Built from https://develop.svn.wordpress.org/trunk@61982


git-svn-id: http://core.svn.wordpress.org/trunk@61264 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2026-03-12 06:02:49 +00:00
Weston Ruter
4a1a88562b Script Loader: Move wp_load_classic_theme_block_styles_on_demand() from init to wp_default_styles.
This ensures the filters to opt in to loading separate block styles on demand are added at the moment `WP_Styles` is constructed. This accounts for styles being registered at the `init` action before `register_core_block_style_handles()` runs at priority 9. Without this, the `wp-block-library` stylesheet may get registered with the full combined block styles as `style.css` instead of just `common.css`, due to `wp_should_load_block_assets_on_demand()` still returning false. The `wp_default_styles` action still runs during `init`.

Developed in https://github.com/WordPress/wordpress-develop/pull/11232

Follow-up to r61008.

Props westonruter, adamsilverstein.
See #64099.
Fixes #64846.

Built from https://develop.svn.wordpress.org/trunk@61981


git-svn-id: http://core.svn.wordpress.org/trunk@61263 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2026-03-12 05:45:46 +00:00
Adam Silverstein
3abd359eba Media: skip server image support check when using client-side media.
When uploading images via the REST API with `generate_sub_sizes` set to `false`, skip server support checks since processing is handled on the client side. Fix an issue where uploads of formats like AVIF fail with `rest_upload_image_type_not_supported`, even though the client will  handle all image processing and the server doesn't need to support the format.

See also https://github.com/WordPress/gutenberg/issues/76369 and https://github.com/WordPress/gutenberg/pull/76371.

Props adamsilverstein, westonruter, andrewserong, mukesh27.
Fixes #64836. See #62717.


Built from https://develop.svn.wordpress.org/trunk@61980


git-svn-id: http://core.svn.wordpress.org/trunk@61262 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2026-03-12 05:33:47 +00:00
Weston Ruter
cf512a5f90 Toolbar: Show command palette admin bar item on mobile.
* The keyboard shortcut is hidden in favor of a search icon on mobile.
* The background color of the `KBD` element is made transparent on non-mobile.
* The admin bar item is skipped from being added if the `wp-core-commands` script is not enqueued.

Developed in https://github.com/WordPress/wordpress-develop/pull/11222

Follow-up to r61912.

Props sabernhardt, westonruter, ellatrix, mukesh27.
See #64672.

Built from https://develop.svn.wordpress.org/trunk@61979


git-svn-id: http://core.svn.wordpress.org/trunk@61261 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2026-03-12 05:24:46 +00:00
desrosj
1306e33535 Build/Test Tools: Copy build/routes and build/pages JS files.
The JavaScript fils within the `build/routes` and `build/pages` directories within the built `gutenberg` asset were not being copied properly into the working directory.

This configures a `grunt copy:gutenberg-js` task to handle this.

Follow up to [61873], [61874].

Props jorgefilipecosta, ellatrix, desrosj.
See #64393.
Built from https://develop.svn.wordpress.org/trunk@61978


git-svn-id: http://core.svn.wordpress.org/trunk@61260 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2026-03-12 04:44:46 +00:00
Adam Silverstein
3b87d1e8be Editor: Skip cross-origin isolation for third-party page builders.
Document-Isolation-Policy (DIP) isolates the document and blocks same-origin iframe access that page builders rely on. Skip DIP setup when a third-party page builder overrides the block editor via a custom `action` query parameter.

Also gates `wp_is_client_side_media_processing_enabled()` on a secure context check, since `SharedArrayBuffer` requires a secure context (HTTPS or localhost). 

Props adamsilverstein, westonruter, mukesh27, louiswol94, manhar, illuminea.
Fixes #64803.


Built from https://develop.svn.wordpress.org/trunk@61947


git-svn-id: http://core.svn.wordpress.org/trunk@61229 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2026-03-11 23:39:48 +00:00
Sergey Biryukov
bb66472f12 Docs: Correct path typos in duplicate hook references.
This adjusts cross-reference comments where the referenced file path contains a typo or an incorrect prefix.

Follow-up to [61878].

Props apermo, mukesh27.
See #64224.
Built from https://develop.svn.wordpress.org/trunk@61946


git-svn-id: http://core.svn.wordpress.org/trunk@61228 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2026-03-11 21:01:46 +00:00
Weston Ruter
0c43da9ee1 Script Loader: Refine hoisted stylesheet ordering to preserve original CSS cascade in classic themes.
This introduces placeholder inline `STYLE` tags in the `HEAD` which are used to accurately locate hoisted styles which were printed in the footer. This improves the robustness of the hoisting logic. A style placeholder had been used previously in the inline style for `wp-block-library` for placing core block styles, and new placeholders are added for global styles and non-core block styles.

Furthermore, this fixes the cascade for inline styles added to `wp-block-library`. When separate block styles are not used, these styles would have appeared after the single combined `wp-block-library`. However, in 6.9 the order changed so that separate block styles would appear after. To preserve the original cascade, this splits the `wp-block-library` inline style: the first half (likely just the inlined `block-library/common.css`) appears before the block styles, and the remainder appears in a new `STYLE#wp-block-library-inline-css-extra` element.

Developed in https://github.com/WordPress/wordpress-develop/pull/10875

Follow-up to r61554, r61174, r61122, r61076, r61008.

Props westonruter, joefusco, adamsilverstein, ocean90, mmorris8, ozgursar, vanonsopensource, xwolf, immeet94, george9, joezappie, jorbin, sajib1223, sabernhardt.
See #64099, #64354, #64150, #43258.
Fixes #64389.

Built from https://develop.svn.wordpress.org/trunk@61945


git-svn-id: http://core.svn.wordpress.org/trunk@61227 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2026-03-11 20:57:45 +00:00
gziolo
dcb95f57ae Connectors: Add connector registry for extensibility
Introduces `WP_Connector_Registry` class and a `wp_connectors_init` action hook so plugins can register their own connectors alongside the built-in defaults (Anthropic, Google, OpenAI).

Key changes:
* `WP_Connector_Registry` — A `final` singleton class managing connector registration and lookup, with validation for IDs, required fields, and authentication methods.
* `wp_connectors_init` action — Fired during `init` after built-in connectors are registered. Passes the registry instance so plugins call `$registry->register()` directly.
* `_wp_connectors_init()` — Private function that creates the registry, merges hardcoded defaults with AI Client registry data, registers them, then fires the action.
* Public read-only functions — `wp_is_connector_registered()`, `wp_get_connector()`, `wp_get_connectors()` for querying the registry after initialization.
* Logo URL support — Connectors can include an optional `logo_url` field resolved from plugin directories via `_wp_connectors_resolve_ai_provider_logo_url()`.
* Timing guards — `set_instance()` rejects calls after `init` completes. Registration is only possible during `wp_connectors_init`.
* Connector API key settings are now only registered when the provider exists in the AI Client registry.
* Refactors `_wp_connectors_get_connector_settings()` to read from the registry via `wp_get_connectors()`.

Developed in https://github.com/WordPress/wordpress-develop/pull/11175

Props gziolo, flixos90, mukesh27, westonruter.
Fixes #64791.



Built from https://develop.svn.wordpress.org/trunk@61943


git-svn-id: http://core.svn.wordpress.org/trunk@61225 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2026-03-11 16:11:46 +00:00
gziolo
93c284f71a AI: Update php-ai-client to 1.3.0.
Updates the bundled `php-ai-client` library to version 1.3.0 and aligns the WordPress-specific prompt builder (`WP_AI_Client_Prompt_Builder`) with the upstream changes.

Key changes in php-ai-client 1.3.0:
* Adds video generation model interfaces.
* Enhances `PromptBuilder` with additional configuration methods.
* Improves `TokenUsage` and `ProviderMetadata` DTOs.
* Updates `MessagePart` DTO.

See release: https://github.com/WordPress/php-ai-client/releases/tag/1.3.0

Developed in https://github.com/WordPress/wordpress-develop/pull/11219

Props flixos90.
See #64591.



Built from https://develop.svn.wordpress.org/trunk@61942


git-svn-id: http://core.svn.wordpress.org/trunk@61224 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2026-03-11 15:46:35 +00:00
joedolson
a67c640b9b Admin: Fix plugin search alignment on intermediate viewports.
Add a margin on the plugin installation search form on screens between 1135 and 1250px.

Props jsmansart, hbhalodia, divyeshpatel01, noruzzaman, huzaifaalmesbah, amin7, shailu25, r1k0, joedolson.
Fixes #64809.
Built from https://develop.svn.wordpress.org/trunk@61941


git-svn-id: http://core.svn.wordpress.org/trunk@61223 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2026-03-11 15:45:52 +00:00
joedolson
3795cb9d5f Admin: Fix checked input state in older browsers.
Remove duplicate CSS setting the checked state for checkbox and radio inputs from `_admin.scss`. The duplicate selectors overrode the white checkmark in older browsers, impacting alternate color schemes.

Props sabernhardt, joedolson.
Fixes #64822.
Built from https://develop.svn.wordpress.org/trunk@61940


git-svn-id: http://core.svn.wordpress.org/trunk@61222 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2026-03-11 15:39:48 +00:00
Weston Ruter
4a0e4153eb Media: Add optimization support for IMG tags with fetchpriority=low or fetchpriority=auto.
This updates `wp_get_loading_optimization_attributes()` and `wp_maybe_add_fetchpriority_high_attr()` to account for cases where an `IMG` has `fetchpriority=low` or `fetchpriority=auto`:

* `IMG` tags with `fetchpriority=low` are not lazy-loaded since they may be in a Navigation overlay, Details block, or Accordion Item block and need to be loaded the instant the user toggles the block.  
* `IMG` tags with `fetchpriority=auto` do not increase the media count since they may be hidden in a viewport by block visibility settings.
* Blocks with conditional visibility (such as hidden on mobile or desktop) now automatically add `fetchpriority="auto"` to their contained `IMG` tags to prevent them from erroneously receiving `fetchpriority=high` or affecting the lazy-loading of subsequent images. 
* An `IMG` with `fetchpriority=auto` which also surpasses the `wp_min_priority_img_pixels` threshold will prevent a subsequent image from getting `fetchpriority=high`. 

Developed in https://github.com/WordPress/wordpress-develop/pull/11196
Includes backport of [https://github.com/WordPress/gutenberg/pull/76302 Gutenberg#76302]. 

See related Gutenberg issues:

- [https://github.com/WordPress/gutenberg/issues/76181 76181]: Image in navigation overlay can get `fetchpriority=high` and degrade LCP metric for page.
- [https://github.com/WordPress/gutenberg/issues/76268 76268]: Image in collapsed Details block may erroneously get `fetchpriority=high` even though hidden.
- [https://github.com/WordPress/gutenberg/issues/76301 76301]: Block Visibility: `IMG` in viewport-conditional block may get `fetchpriority=high` even when not displayed.
- [https://github.com/WordPress/gutenberg/issues/76335 76335]: Image in collapsed Accordion block may erroneously get `fetchpriority=high` even though hidden.

Follow-up to r56347, r56037.

Props westonruter, mukesh27, ramonopoly, wildworks.
See #58235.
Fixes #64823.

Built from https://develop.svn.wordpress.org/trunk@61934


git-svn-id: http://core.svn.wordpress.org/trunk@61216 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2026-03-11 06:20:49 +00:00
Weston Ruter
6adc3c2417 Script Loader: Preserve duplicate URL query params in enqueued scripts and styles.
Previously in r61397, `add_query_arg()` was used to append versions or handle-specific query arguments. This resulted in stripping any existing duplicate query variables in the source URL (common in Google Fonts URLs). This change refactors `WP_Styles::_css_href()` and `WP_Scripts::do_item()` to manually append these parameters to the URL string. This ensures all original query variables are preserved exactly as provided. It also improves fragment handling by ensuring query parameters are inserted before any '#' anchor while maintaining the anchor's presence.

The URL encoding changes in `tests/phpunit/tests/dependencies/scripts.php` are reversions of what had previously been done in r61397.

Developed in https://github.com/WordPress/wordpress-develop/pull/11164

Follow-up to r61397, r61358.

Props westonruter, jonsurrell.
Fixes #64372.

Built from https://develop.svn.wordpress.org/trunk@61927


git-svn-id: http://core.svn.wordpress.org/trunk@61209 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2026-03-11 01:32:44 +00:00
Peter Wilson
68a4551289 Post WordPress 7.0 Beta 4 version bump.
Built from https://develop.svn.wordpress.org/trunk@61919


git-svn-id: http://core.svn.wordpress.org/trunk@61201 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2026-03-10 23:47:48 +00:00
Peter Wilson
98cc6f1672 WordPress 7.0 Beta 4.
Built from https://develop.svn.wordpress.org/trunk@61918


git-svn-id: http://core.svn.wordpress.org/trunk@61200 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2026-03-10 22:50:44 +00:00
John Blackbourn
89acbf66b1 Customize: Introduce a fix for themes that pass a stringable object through the template_include filter despite it being documented as only accepting a string.
This has historically worked until [61892] increased the strictness of the template file validation which dismissed any value of a type other than a string, which a stringable object is not.

Props dmsnell, westonruter.

Built from https://develop.svn.wordpress.org/trunk@61913


git-svn-id: http://core.svn.wordpress.org/trunk@61195 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2026-03-10 21:11:48 +00:00
ellatrix
438e2779ac Toolbar: Add command palette trigger button.
Props wildworks, hmbashar, bpayton, mcsf, joedolson, sabernhardt, westonruter.
See #64672.
Built from https://develop.svn.wordpress.org/trunk@61912


git-svn-id: http://core.svn.wordpress.org/trunk@61194 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2026-03-10 19:12:47 +00:00
John Blackbourn
0e6510596c Customize: Update a test that covers special characters in category names in nav menus.
This should have been committed in [61883] but got missed.

Built from https://develop.svn.wordpress.org/trunk@61890


git-svn-id: http://core.svn.wordpress.org/trunk@61172 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2026-03-10 13:26:47 +00:00
John Blackbourn
0abc4ef20c Media: Disable XML entity substitution in getID3.
Props johnbillion, xknown, dmsnell, jorbin.

Built from https://develop.svn.wordpress.org/trunk@61889


git-svn-id: http://core.svn.wordpress.org/trunk@61171 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2026-03-10 12:52:40 +00:00
John Blackbourn
f46ecd2f8c Comments: Don't attempt to create a note if the user cannot edit the target post.
Props johnbillion, peterwilsoncc, adamsilverstein.

Built from https://develop.svn.wordpress.org/trunk@61888


git-svn-id: http://core.svn.wordpress.org/trunk@61170 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2026-03-10 12:49:45 +00:00
John Blackbourn
8f6921d5cd Filesystem API: Don't attempt to extract invalid files from a zip when using the PclZip library.
This brings the handling inline with the same guard condition in `_unzip_file_ziparchive()` with ZipArchive.

Props johnbillion, peterwilsoncc, xknown.

Built from https://develop.svn.wordpress.org/trunk@61887


git-svn-id: http://core.svn.wordpress.org/trunk@61169 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2026-03-10 12:47:39 +00:00
John Blackbourn
5fefc032ab Administration: Ensure client-side templates are only detected when they're correctly associated with a script tag.
Props johnbillion, peterwilsoncc, jorbin.

Built from https://develop.svn.wordpress.org/trunk@61886


git-svn-id: http://core.svn.wordpress.org/trunk@61168 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2026-03-10 12:44:39 +00:00
John Blackbourn
0f885ad57d Interactivity API: Skip binding event handler attributes. The corresponding data-wp-on-- attribute should be used instead.
Props luisherranz, peterwilsoncc, johnbillion, ocean90, jorbin, xknown.

Built from https://develop.svn.wordpress.org/trunk@61885


git-svn-id: http://core.svn.wordpress.org/trunk@61167 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2026-03-10 12:42:42 +00:00
John Blackbourn
b2f104f406 Media: Ensure the attachment parent is accessible to the user before showing a link to it in the media manager.
Props johnbillion, peterwilsoncc.

Built from https://develop.svn.wordpress.org/trunk@61884


git-svn-id: http://core.svn.wordpress.org/trunk@61166 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2026-03-10 12:37:40 +00:00
John Blackbourn
0f3e3dbd75 Customize: Improve escaping approach used for nav menu attributes
Some attributes require double encoding, which is disallowed by `esc_attr()`.

Props westonruter, dmsnell, johnbillion.

Built from https://develop.svn.wordpress.org/trunk@61883


git-svn-id: http://core.svn.wordpress.org/trunk@61165 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2026-03-10 12:34:44 +00:00
John Blackbourn
63e76ee310 KSES: Optimize PCRE pattern detecting numeric character references.
Props dmsnell, xknown, johnbillion.

Built from https://develop.svn.wordpress.org/trunk@61882


git-svn-id: http://core.svn.wordpress.org/trunk@61164 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2026-03-10 12:28:40 +00:00
John Blackbourn
a88ec429b9 XML-RPC: Switch to wp_safe_remote() when fetching a pingback URL.
This corrects the accidental revert of [61879] in [61880].

Built from https://develop.svn.wordpress.org/trunk@61881


git-svn-id: http://core.svn.wordpress.org/trunk@61163 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2026-03-10 12:24:47 +00:00
John Blackbourn
f6a2aea6c4 HTML API: Prevent WP_HTML_Tag_Processor instances being unserialized and add some extra logic for validating pattern and template file paths.
Props dmsnell, xknown, jonsurrell, peterwilsoncc, johnbillion.

Built from https://develop.svn.wordpress.org/trunk@61880


git-svn-id: http://core.svn.wordpress.org/trunk@61162 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2026-03-10 12:20:43 +00:00
John Blackbourn
ccc5ded2b6 XML-RPC: Switch to wp_safe_remote() when fetching a pingback URL.
Props xknown, johnbillion, peterwilsoncc.

Built from https://develop.svn.wordpress.org/trunk@61879


git-svn-id: http://core.svn.wordpress.org/trunk@61161 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2026-03-10 12:15:48 +00:00
Sergey Biryukov
cc4246cd13 Docs: Correct duplicate hook references in various files.
This commit adjusts cross-reference comments where the hook was moved to a different file but the cross-reference was not updated.

Props apermo, mukesh27.
See #64224.
Built from https://develop.svn.wordpress.org/trunk@61878


git-svn-id: http://core.svn.wordpress.org/trunk@61160 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2026-03-10 11:43:18 +00:00
desrosj
52caefbc6b Build/Test Tools: Remove the requirement to clone/build Gutenberg.
This iterates on the changes from [61438] by removing the need to:
- Check out the WordPress/gutenberg repository at the pinned hash.
- Run `npm install` within that checkout.
- Run `npm build` within that checkout.

Instead, the build script will now download a prebuilt zip file published to the GitHub Container Registry by a GitHub Actions workflow recently merged to the Gutenberg Repository (related PR: https://github.com/WordPress/gutenberg/pull/75844).

This also removes redundant code responsible for:
- Copying files from the `gutenberg` directory to the appropriate locations during the build script in favor of using `grunt copy`.
- Modifying built files to replace specific text, such as `sourceMappingURL`, in favor of `grunt replace`.

The remaining files within the `tools/gutenberg` directory have been renamed to remove `gutenberg` from the file names. Since these are already nested in a `gutenberg` directory, that was redundant.

Since the intention of the pinned value for the repository in the `package.json` file is to specify a full-length commit hash, `ref` has been renamed to `sha`. In Git `ref` encompasses branches, tags, and commit hashes, so this hopefully makes it more clear that something like `branch-name` should not be used.

Follow up to [61438], [61439], [61458], [61492], [61677], [61867].

Props desrosj, dmsnell, westonruter, mcsf, jorbin.
See #64393.
Built from https://develop.svn.wordpress.org/trunk@61873


git-svn-id: http://core.svn.wordpress.org/trunk@61159 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2026-03-10 11:29:34 +00:00
desrosj
ade7a13060 Editor: Bump pinned hash for the Gutenberg repository.
This updates the pinned hash from the `gutenberg` from `7b7fa2bc97a8029a302bd6511cf0d206b5953172` to `9b8144036fa5faf75de43d4502ff9809fcf689ad`.

The following changes are included:

- Use V2 Yjs methods for HTTP Polling (https://github.com/WordPress/gutenberg/pull/76304)
- Plugin: Include Icons assets in ZIP (https://github.com/WordPress/gutenberg/pull/75866)
- Ensure consistent, repeatable build results when inlining WASM files via `wasmInlinePlugin`  (https://github.com/WordPress/gutenberg/pull/76113)
- Account `IS_WORDPRESS_CORE` is set. (https://github.com/WordPress/gutenberg/pull/76334)
- Block Visibility: Add `fetchpriority=auto` to `IMG` tags in blocks with conditional viewport visibility to prevent potential erroneous high loading priority (https://github.com/WordPress/gutenberg/pull/76302)

A full list of changes can be found on GitHub: 7b7fa2bc97…9b8144036fa5faf75de43d4502ff9809fcf689ad.

See #64595, #64393.
Built from https://develop.svn.wordpress.org/trunk@61870


git-svn-id: http://core.svn.wordpress.org/trunk@61157 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2026-03-10 02:41:14 +00:00
Sergey Biryukov
5c13483c81 Admin Reskin: Correct background color for comment count bubbles.
Props r1k0, mukesh27, manishxdp.
Fixes #64829.
Built from https://develop.svn.wordpress.org/trunk@61869


git-svn-id: http://core.svn.wordpress.org/trunk@61156 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2026-03-09 22:05:43 +00:00
desrosj
685fb16a7f Editor: Bump pinned hash for the Gutenberg repository.
This updates the pinned hash from the `gutenberg` from `f4d8a5803aa2fbe26e7d9af4d17e80a622b7bab8` to `7b7fa2bc97a8029a302bd6511cf0d206b5953172`.

The following changes are included:

- Sort registry files by handle/ID. (https://github.com/WordPress/gutenberg/pull/75755)
- Obey undoIgnore flag in editEntityRecord (https://github.com/WordPress/gutenberg/pull/76206)
- RTC: Fix `post-editor-template-mode` E2E test (https://github.com/WordPress/gutenberg/pull/76209)
- Publish built Gutenberg plugin to the GitHub Container Registry (https://github.com/WordPress/gutenberg/pull/75844) (https://github.com/WordPress/gutenberg/pull/76273)
- Connectors: Improve placeholder text and make it translatable (https://github.com/WordPress/gutenberg/pull/75996)
- Block context menu: context menu not closing for disconnecting unsynced pattern menu items (https://github.com/WordPress/gutenberg/pull/75405)
- Connectors: Improve responsive layout for small viewports (https://github.com/WordPress/gutenberg/pull/76231)
- theme.json schema: fix pseudo-class definition for button block (https://github.com/WordPress/gutenberg/pull/76272)
- Navigation block: fix submenu chevron toggle on touch devices (https://github.com/WordPress/gutenberg/pull/76197)

See #64595, #64393.
Built from https://develop.svn.wordpress.org/trunk@61868


git-svn-id: http://core.svn.wordpress.org/trunk@61155 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2026-03-09 19:27:24 +00:00
desrosj
abeb5ef9bc Build/Test Tools: Properly transform theme.json files during copy.
The `theme.json` file `$schema` URL is relative in the `gutenberg` repository upstream. The URL is not currently being replaced with an aboslute one pointing to w.org due to a missing `transform: true` configuration.

Follow up to [61438], [61439], [61458], [61492], [61677].

See #64393.
Built from https://develop.svn.wordpress.org/trunk@61867


git-svn-id: http://core.svn.wordpress.org/trunk@61154 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2026-03-09 18:43:38 +00:00
Sergey Biryukov
b0116dc5c5 Code Quality: Correct hook registration type mismatches.
Though `add_action()` and `add_filter()` are functionally equivalent internally, for proper semantics the former should be used on actions and the latter on filters.

Follow-up to [37920], [38046], [53266].

Props apermo.
Fixes #64828.
Built from https://develop.svn.wordpress.org/trunk@61866


git-svn-id: http://core.svn.wordpress.org/trunk@61153 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2026-03-08 23:49:37 +00:00
Sergey Biryukov
4a87aba8d2 Editor: Correct wp_enable_real_time_collaboration default for REST API sync route.
Follow-up to [61689], [61702], [61722], [61828], [61862], [61864].

Props mindctrl, skithund, amykamala, MadtownLems, aion11, peterwilsoncc, pbiron, apermo, SergeyBiryukov.
Fixes #64814.
Built from https://develop.svn.wordpress.org/trunk@61865


git-svn-id: http://core.svn.wordpress.org/trunk@61152 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2026-03-07 18:05:33 +00:00
desrosj
735f4d33f4 Editor: Bump the database version to 61833.
The option to enable real-time collaboration was first added in [61689] as `enable_real_time_collaboration` with a value of `1` and the `$db_version` was bumped in [61696].

The option then went through a series of changes. This included: the default value changing to `0` in [61702], being renamed to `wp_enable_real_time_collaboration` in [61722], removed entirely in [61828], and finally being re-added as `wp_enable_real_time_collaboration` in [61862].

Because the `$db_version` was not bumped after these changes, it’s possible that the `wp_enable_real_time_collaboration` option is not present on any site that ran the nightly build generated between [61696] and [61702], or a nightly build/beta release published after [61828]. Since `populate_options()` runs when a new site is installed, this issue only affects pre-existing sites that had upgradd their database when `wp_enable_real_time_collaboration` was not specified as a default option within `$defaults`.

This bumps the database version to `61833`, which is the most recent changeset to have modified the `$defaults` array in `populate_options()`.

Props dlh, maxschmeling, smithjw1, kbat82.
See #64824, #64622.
Built from https://develop.svn.wordpress.org/trunk@61864


git-svn-id: http://core.svn.wordpress.org/trunk@61151 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2026-03-07 03:14:33 +00:00
joedolson
1ea5366210 Media: Hide image name overlay on gallery thumbnail row.
Set the generated content in the gallery selection strip to `content: none;` to remove the generated overlay. Follow up to [61757].

Props wildworks, hbhalodia, divyeshpatel01, huzaifaalmesbah, apermo, joedolson.
Fixes #64820.
Built from https://develop.svn.wordpress.org/trunk@61862


git-svn-id: http://core.svn.wordpress.org/trunk@61149 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2026-03-06 23:41:44 +00:00
joedolson
3a8c0ec190 Toolbar: A11y: Fix color contrast for zero comments.
Remove the 50% opacity change for when the adminbar comment indicators has zero comments.

Props louischan, hbhalodia, sabernhardt, joedolson.
Fixes #64811.
Built from https://develop.svn.wordpress.org/trunk@61861


git-svn-id: http://core.svn.wordpress.org/trunk@61148 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2026-03-06 23:28:43 +00:00
joedolson
4a1eb234a6 Customizer: Set more colors to inherit from admin theme.
Remove color overrides in customizer CSS that are already set in admin theme colors. Set colors to admin theme colors where currently hard coded.

Props madhavishah01, noruzzaman, shailu25, joedolson.
Fixes #64731.
Built from https://develop.svn.wordpress.org/trunk@61860


git-svn-id: http://core.svn.wordpress.org/trunk@61147 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2026-03-06 23:22:41 +00:00
Sergey Biryukov
219d7563ef Code Quality: Make sure $comment_id is defined in wp-admin/comment.php.
This avoids a `variable.undefined` warning at PHPStan level 3.

Follow-up to [48958].

Props huzaifaalmesbah, westonruter, SergeyBiryukov.
See #64238.
Built from https://develop.svn.wordpress.org/trunk@61859


git-svn-id: http://core.svn.wordpress.org/trunk@61146 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2026-03-06 23:20:46 +00:00