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.
Fixes #59226.

Built from https://develop.svn.wordpress.org/trunk@56490


git-svn-id: http://core.svn.wordpress.org/trunk@56002 1a063a9b-81f0-0310-95a4-ce76da25c4cd
This commit is contained in:
Joe McGill 2023-08-29 22:05:23 +00:00
parent a4ee712d0d
commit c15220ee49
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; $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 = 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 ) { if ( $orderby ) {
$query_args['orderby'] = array_fill_keys( $orderby, $parsed_args['sort_order'] ); $query_args['orderby'] = array_fill_keys( $orderby, $parsed_args['sort_order'] );
} }

View File

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