mirror of
https://github.com/gosticks/wordpress-develop.git
synced 2026-06-28 14:20:15 +00:00
Ordering by RAND():
The shortcode callbacks for `gallery` and `playlist` check for `'RAND' == $atts['order']`, which isn't a valid value for `order`. Remove those checks and update the docs. In `WP_Query`, if the value of `orderby` is `rand`, `order` is irrelevant and should be unset. Adds unit tests. Fixes #29629. git-svn-id: https://develop.svn.wordpress.org/trunk@29760 602fd350-edb4-49c9-b593-d223f7449a82
This commit is contained in:
@@ -831,4 +831,39 @@ class Tests_Post_Query extends WP_UnitTestCase {
|
||||
$q3->request
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* @ticket 29629
|
||||
*/
|
||||
function test_orderby() {
|
||||
// 'rand' is a valid value
|
||||
$q = new WP_Query( array( 'orderby' => 'rand' ) );
|
||||
$this->assertContains( 'ORDER BY RAND()', $q->request );
|
||||
$this->assertNotContains( 'ASC', $q->request );
|
||||
$this->assertNotContains( 'DESC', $q->request );
|
||||
|
||||
// This isn't allowed
|
||||
$q2 = new WP_Query( array( 'order' => 'rand' ) );
|
||||
$this->assertContains( 'ORDER BY', $q2->request );
|
||||
$this->assertNotContains( 'RAND()', $q2->request );
|
||||
$this->assertContains( 'DESC', $q2->request );
|
||||
|
||||
// 'none' is a valid value
|
||||
$q3 = new WP_Query( array( 'orderby' => 'none' ) );
|
||||
$this->assertNotContains( 'ORDER BY', $q3->request );
|
||||
$this->assertNotContains( 'DESC', $q3->request );
|
||||
$this->assertNotContains( 'ASC', $q3->request );
|
||||
|
||||
// false is a valid value
|
||||
$q4 = new WP_Query( array( 'orderby' => false ) );
|
||||
$this->assertNotContains( 'ORDER BY', $q4->request );
|
||||
$this->assertNotContains( 'DESC', $q4->request );
|
||||
$this->assertNotContains( 'ASC', $q4->request );
|
||||
|
||||
// empty array() is a valid value
|
||||
$q5 = new WP_Query( array( 'orderby' => array() ) );
|
||||
$this->assertNotContains( 'ORDER BY', $q5->request );
|
||||
$this->assertNotContains( 'DESC', $q5->request );
|
||||
$this->assertNotContains( 'ASC', $q5->request );
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user