From 0cd1931b8ef7f7cc924d341cfeb4a967479af0e9 Mon Sep 17 00:00:00 2001 From: Kavit Trivedi Date: Mon, 5 Jan 2026 10:16:05 +0530 Subject: [PATCH 1/2] Media: Normalize order prop in Attachments.initialize() Add order normalization in the Attachments model initialize method to ensure the 'order' property is always 'ASC' or 'DESC' (defaulting to 'DESC' for invalid values). This provides consistent behavior across all attachment collections. Part of fixing Media Library Grid view ordering when order query var is not normalized. See #64467. --- src/js/media/models/attachments.js | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/src/js/media/models/attachments.js b/src/js/media/models/attachments.js index 23510bd949f4c..0b764de042ae6 100644 --- a/src/js/media/models/attachments.js +++ b/src/js/media/models/attachments.js @@ -44,7 +44,17 @@ var Attachments = Backbone.Collection.extend(/** @lends wp.media.model.Attachmen this.props.on( 'change:orderby', this._changeOrderby, this ); this.props.on( 'change:query', this._changeQuery, this ); - this.props.set( _.defaults( options.props || {} ) ); + options.props = _.defaults( options.props || {} ); + + // Normalize the order if it exists. + if ( 'string' === typeof options.props.order ) { + options.props.order = options.props.order.toUpperCase(); + if ( 'ASC' !== options.props.order && 'DESC' !== options.props.order ) { + options.props.order = 'DESC'; + } + } + + this.props.set( options.props ); if ( options.observe ) { this.observe( options.observe ); From 78a9ebe0897679087d052c9f8978ba3f22eb085c Mon Sep 17 00:00:00 2001 From: Kavit Trivedi Date: Mon, 5 Jan 2026 10:16:11 +0530 Subject: [PATCH 2/2] Media: Remove duplicate order normalization from Query model Since Query inherits from Attachments, and Attachments now normalizes the order property in its initialize method, remove the duplicate normalization code from Query.get() to avoid redundancy and ensure consistent behavior. Part of fixing Media Library Grid view ordering when order query var is not normalized. See #64467. --- src/js/media/models/query.js | 6 ------ 1 file changed, 6 deletions(-) diff --git a/src/js/media/models/query.js b/src/js/media/models/query.js index b3f62018f5cd4..3c47215c39833 100644 --- a/src/js/media/models/query.js +++ b/src/js/media/models/query.js @@ -251,12 +251,6 @@ Query = Attachments.extend(/** @lends wp.media.model.Query.prototype */{ // Fill default args. _.defaults( props, defaults ); - // Normalize the order. - props.order = props.order.toUpperCase(); - if ( 'DESC' !== props.order && 'ASC' !== props.order ) { - props.order = defaults.order.toUpperCase(); - } - // Ensure we have a valid orderby value. if ( ! _.contains( orderby.allowed, props.orderby ) ) { props.orderby = defaults.orderby;