Repository navigation
Media: Parse only the search term in media grid router when extra query parameters are present - #14237
Media: Parse only the search term in media grid router when extra query parameters are present#14237wprashed wants to merge 1 commit into
Conversation
…ry parameters are present When navigating in the Media Library grid view (upload.php), the Backbone router matches `upload.php?search=:query`. If additional query parameters are present after `search=` (for instance `upload.php?search=sunset&mode=grid`), the router's `:query` capture group includes the rest of the query string including the ampersand and additional keys and values. This caused the search input field to be populated with the entire remainder of the query string rather than just the search term. This updates `Router.prototype.search()` to isolate the search term before any `&` parameter delimiter. It also ensures `Router.prototype.showItem()` uses the parsed integer attachment ID when querying `wp.media.attachment()`. Props wprashed. Fixes #65806.
|
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. |
Trac ticket: https://core.trac.wordpress.org/ticket/65806
Description
When navigating in the Media Library grid view (
upload.php), the Backbone router matchesupload.php?search=:query. If additional query parameters are appended aftersearch=(for instanceupload.php?search=sunset&mode=gridor via third-party extensions/links), the:queryroute parameter captures the entire remainder of the string including the&delimiter and additional parameter names and values.This caused the media search input field to be populated with the entire remainder of the query string rather than just the search term.
Solution
src/js/media/routers/manage.js, updateRouter.prototype.search()to isolate the search term before any¶meter delimiter.Router.prototype.showItem(), ensurewp.media.attachment()is invoked with the parsed integer attachment ID (itemId) rather than the raw query parameter.How to test
/wp-admin/upload.php?mode=grid./wp-admin/upload.php?search=test&mode=grid.test, rather thantest&mode=grid.