Allow ORDER BY in WP_Comment_Query::query() to be disabled.

Disable ORDER BY by passing boolean false, an empty array, or the string
'none' to the 'orderby parameter. This mirrors the behavior of `WP_Query`.

Props psycleuk.
Fixes #29902.
Built from https://develop.svn.wordpress.org/trunk@30004


git-svn-id: http://core.svn.wordpress.org/trunk@30004 1a063a9b-81f0-0310-95a4-ce76da25c4cd
This commit is contained in:
Boone Gorges 2014-10-24 02:51:19 +00:00
parent f780d0d09b
commit 40ec420689
2 changed files with 10 additions and 3 deletions

View File

@ -387,7 +387,10 @@ class WP_Comment_Query {
$order = ( 'ASC' == strtoupper( $this->query_vars['order'] ) ) ? 'ASC' : 'DESC'; $order = ( 'ASC' == strtoupper( $this->query_vars['order'] ) ) ? 'ASC' : 'DESC';
if ( ! empty( $this->query_vars['orderby'] ) ) { // Disable ORDER BY with 'none', an empty array, or boolean false.
if ( in_array( $this->query_vars['orderby'], array( 'none', array(), false ), true ) ) {
$orderby = '';
} else if ( ! empty( $this->query_vars['orderby'] ) ) {
$ordersby = is_array( $this->query_vars['orderby'] ) ? $ordersby = is_array( $this->query_vars['orderby'] ) ?
$this->query_vars['orderby'] : $this->query_vars['orderby'] :
preg_split( '/[,\s]/', $this->query_vars['orderby'] ); preg_split( '/[,\s]/', $this->query_vars['orderby'] );
@ -588,7 +591,11 @@ class WP_Comment_Query {
$groupby = 'GROUP BY ' . $groupby; $groupby = 'GROUP BY ' . $groupby;
} }
$this->request = "SELECT $fields FROM $wpdb->comments $join WHERE $where $groupby $orderby $order $limits"; if ( $orderby ) {
$orderby = "ORDER BY $orderby $order";
}
$this->request = "SELECT $fields FROM $wpdb->comments $join WHERE $where $groupby $orderby $limits";
if ( $this->query_vars['count'] ) { if ( $this->query_vars['count'] ) {
return $wpdb->get_var( $this->request ); return $wpdb->get_var( $this->request );

View File

@ -4,7 +4,7 @@
* *
* @global string $wp_version * @global string $wp_version
*/ */
$wp_version = '4.1-alpha-30003'; $wp_version = '4.1-alpha-30004';
/** /**
* 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.