From 9fb7782b399fdb74afa272b2888c70fc744f1be1 Mon Sep 17 00:00:00 2001 From: Dan Hudson Date: Tue, 4 Aug 2026 14:23:47 +0100 Subject: [PATCH 1/2] Media Library: Strip additional parameters out of search --- src/js/media/routers/manage.js | 95 ++++++++++++++++++---------------- 1 file changed, 49 insertions(+), 46 deletions(-) diff --git a/src/js/media/routers/manage.js b/src/js/media/routers/manage.js index aabda330aeffa..df89e4edb4c98 100644 --- a/src/js/media/routers/manage.js +++ b/src/js/media/routers/manage.js @@ -8,60 +8,63 @@ * @class * @augments Backbone.Router */ -var Router = Backbone.Router.extend(/** @lends wp.media.view.MediaFrame.Manage.Router.prototype */{ - routes: { - 'upload.php?item=:slug&mode=edit': 'editItem', - 'upload.php?item=:slug': 'showItem', - 'upload.php?search=:query': 'search', - 'upload.php': 'reset' - }, +var Router = Backbone.Router.extend( + /** @lends wp.media.view.MediaFrame.Manage.Router.prototype */ { + routes: { + 'upload.php?item=:slug&mode=edit': 'editItem', + 'upload.php?item=:slug': 'showItem', + 'upload.php?search=:query': 'search', + 'upload.php': 'reset', + }, - // Map routes against the page URL. - baseUrl: function( url ) { - return 'upload.php' + url; - }, + // Map routes against the page URL. + baseUrl: function ( url ) { + return 'upload.php' + url; + }, - reset: function() { - var frame = wp.media.frames.edit; + reset: function () { + var frame = wp.media.frames.edit; - if ( frame ) { - frame.close(); - } - }, + if ( frame ) { + frame.close(); + } + }, - // Respond to the search route by filling the search field and triggering the input event. - search: function( query ) { - jQuery( '#media-search-input' ).val( query ).trigger( 'input' ); - }, + // Respond to the search route by filling the search field and triggering the input event. + search: function ( query ) { + query = ( query || '' ).split( '&' ).shift(); + jQuery( '#media-search-input' ).val( query ).trigger( 'input' ); + }, - // Show the modal with a specific item. - showItem: function( query ) { - var media = wp.media, - frame = media.frames.browse, - library = frame.state().get('library'), - item; + // Show the modal with a specific item. + showItem: function ( query ) { + var media = wp.media, + frame = media.frames.browse, + library = frame.state().get( 'library' ), + item; - // Trigger the media frame to open the correct item. - item = library.findWhere( { id: parseInt( query, 10 ) } ); + // Trigger the media frame to open the correct item. + item = library.findWhere( { id: parseInt( query, 10 ) } ); - if ( item ) { - item.set( 'skipHistory', true ); - frame.trigger( 'edit:attachment', item ); - } else { - item = media.attachment( query ); - frame.listenTo( item, 'change', function( model ) { - frame.stopListening( item ); - frame.trigger( 'edit:attachment', model ); - } ); - item.fetch(); - } - }, + if ( item ) { + item.set( 'skipHistory', true ); + frame.trigger( 'edit:attachment', item ); + } else { + item = media.attachment( query ); + frame.listenTo( item, 'change', function ( model ) { + frame.stopListening( item ); + frame.trigger( 'edit:attachment', model ); + } ); + item.fetch(); + } + }, - // Show the modal in edit mode with a specific item. - editItem: function( query ) { - this.showItem( query ); - wp.media.frames.edit.content.mode( 'edit-details' ); + // Show the modal in edit mode with a specific item. + editItem: function ( query ) { + this.showItem( query ); + wp.media.frames.edit.content.mode( 'edit-details' ); + }, } -}); +); module.exports = Router; From 82c7481c80f5fb65473d0f677cc437c93b020b77 Mon Sep 17 00:00:00 2001 From: Dan Hudson Date: Tue, 4 Aug 2026 14:34:35 +0100 Subject: [PATCH 2/2] Media Library: Use search url parameter rather than backbone route to ensure only "search" is selected --- src/js/media/routers/manage.js | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/js/media/routers/manage.js b/src/js/media/routers/manage.js index df89e4edb4c98..1fb525a14d903 100644 --- a/src/js/media/routers/manage.js +++ b/src/js/media/routers/manage.js @@ -31,8 +31,9 @@ var Router = Backbone.Router.extend( }, // Respond to the search route by filling the search field and triggering the input event. - search: function ( query ) { - query = ( query || '' ).split( '&' ).shift(); + search: function () { + var params = new URLSearchParams( window.location.search ); + var query = params.get( 'search' ) || ''; jQuery( '#media-search-input' ).val( query ).trigger( 'input' ); },