Interactivity API: populate router's state.url in the server#10944
Interactivity API: populate router's state.url in the server#10944luisherranz wants to merge 2 commits intoWordPress:trunkfrom
state.url in the server#10944Conversation
|
The following accounts have interacted with this PR and/or linked issues. I will continue to update these lists as activity occurs. You can also manually ask me to refresh this list by adding the Core Committers: Use this line as a base for the props when committing in SVN: To understand the WordPress project's expectations around crediting contributors, please review the Contributor Attribution page in the Core Handbook. |
Test using WordPress PlaygroundThe changes in this pull request can previewed and tested using a WordPress Playground instance. WordPress Playground is an experimental project that creates a full WordPress instance entirely within the browser. Some things to be aware of
For more details about these limitations and more, check out the Limitations page in the WordPress Playground documentation. |
What
This PR populates
state.urlin thecore/routerInteractivity API namespace on the server, inside thedata-wp-router-regiondirective processor.Trac ticket: https://core.trac.wordpress.org/ticket/64649
Why
After Gutenberg PR WordPress/gutenberg#70882,
state.urlin the interactivity router is no longer unconditionally set towindow.location.hrefon the client. Instead, it falls back towindow.location.hrefonly if the server hasn't already provided a value:This PR provides that server-side value by calling
wp_interactivity_state( 'core/router', ... )during directive processing, following the same URL construction pattern used byredirect_canonical()andget_self_link().How
wp_interactivity_state( 'core/router', array( 'url' => ... ) )call insidedata_wp_router_region_processor()inWP_Interactivity_API.set_url_scheme(),$_SERVER['HTTP_HOST'], and$_SERVER['REQUEST_URI'].Testing
data-wp-router-region)."core/router"with the"url"property matching the current page URL.Use of AI tools
Claude Code was used to research the best way to construct the URL and how other internal WordPress functions do it, and assist in creating the tests.
This Pull Request is for code review only. Please keep all other discussion in the Trac ticket. Do not merge this Pull Request. See GitHub Pull Requests for Code Review in the Core Handbook for more details.