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';
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'] ) ?
$this->query_vars['orderby'] :
preg_split( '/[,\s]/', $this->query_vars['orderby'] );
@ -588,7 +591,11 @@ class WP_Comment_Query {
$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'] ) {
return $wpdb->get_var( $this->request );

View File

@ -4,7 +4,7 @@
*
* @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.