Posts, Post Types: Reinstate missing sort_column options in get_pages().

This fixes an issue introduced in [55569] that broke sort ordering by `post_modified_gmt` or `modified_gmt`.

Props david.binda, azaozz, spacedmonkey, flixos90, joemcgill.
Merges [56490] to the 6.3 branch.
Fixes #59226.

Built from https://develop.svn.wordpress.org/branches/6.3@56517


git-svn-id: http://core.svn.wordpress.org/branches/6.3@56029 1a063a9b-81f0-0310-95a4-ce76da25c4cd
This commit is contained in:
Felix Arntz 2023-09-05 20:48:24 +00:00
parent bedc3be9f2
commit 2cdc8ec43a
2 changed files with 16 additions and 2 deletions

View File

@ -6066,8 +6066,22 @@ function get_pages( $args = array() ) {
$query_args['post_parent'] = $parent;
}
/*
* Maintain backward compatibility for `sort_column` key.
* Additionally to `WP_Query`, it has been supporting the `post_modified_gmt` field, so this logic will translate
* it to `post_modified` which should result in the same order given the two dates in the fields match.
*/
$orderby = wp_parse_list( $parsed_args['sort_column'] );
$orderby = array_map( 'trim', $orderby );
$orderby = array_map(
static function( $orderby_field ) {
$orderby_field = trim( $orderby_field );
if ( 'post_modified_gmt' === $orderby_field || 'modified_gmt' === $orderby_field ) {
$orderby_field = str_replace( '_gmt', '', $orderby_field );
}
return $orderby_field;
},
$orderby
);
if ( $orderby ) {
$query_args['orderby'] = array_fill_keys( $orderby, $parsed_args['sort_order'] );
}

View File

@ -16,7 +16,7 @@
*
* @global string $wp_version
*/
$wp_version = '6.3.2-alpha-56516';
$wp_version = '6.3.2-alpha-56517';
/**
* Holds the WordPress DB revision, increments when changes are made to the WordPress DB schema.