Don't specify an offset
default in get_posts()
.
The default value should be a null offset. A `0` default overrides any value of `paged` passed to `get_posts()`. See [34697]. Fixes #34060. git-svn-id: https://develop.svn.wordpress.org/trunk@35417 602fd350-edb4-49c9-b593-d223f7449a82
This commit is contained in:
parent
ad471ac474
commit
f1ca28c2ab
@ -1610,7 +1610,7 @@ function is_post_type_viewable( $post_type_object ) {
|
|||||||
*/
|
*/
|
||||||
function get_posts( $args = null ) {
|
function get_posts( $args = null ) {
|
||||||
$defaults = array(
|
$defaults = array(
|
||||||
'numberposts' => 5, 'offset' => 0,
|
'numberposts' => 5,
|
||||||
'category' => 0, 'orderby' => 'date',
|
'category' => 0, 'orderby' => 'date',
|
||||||
'order' => 'DESC', 'include' => array(),
|
'order' => 'DESC', 'include' => array(),
|
||||||
'exclude' => array(), 'meta_key' => '',
|
'exclude' => array(), 'meta_key' => '',
|
||||||
|
128
tests/phpunit/tests/post/getPosts.php
Normal file
128
tests/phpunit/tests/post/getPosts.php
Normal file
@ -0,0 +1,128 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @group post
|
||||||
|
* @group query
|
||||||
|
*/
|
||||||
|
class Tests_Post_GetPosts extends WP_UnitTestCase {
|
||||||
|
public function test_offset_should_be_null_by_default() {
|
||||||
|
$p1 = self::factory()->post->create( array(
|
||||||
|
'post_date' => '2015-04-04 04:04:04',
|
||||||
|
) );
|
||||||
|
$p2 = self::factory()->post->create( array(
|
||||||
|
'post_date' => '2014-04-04 04:04:04',
|
||||||
|
) );
|
||||||
|
|
||||||
|
$found = get_posts( array(
|
||||||
|
'numberposts' => 1,
|
||||||
|
'orderby' => 'date',
|
||||||
|
'order' => 'DESC',
|
||||||
|
'fields' => 'ids',
|
||||||
|
) );
|
||||||
|
|
||||||
|
$this->assertSame( array( $p1 ), $found );
|
||||||
|
}
|
||||||
|
|
||||||
|
public function test_offset_0_should_be_respected() {
|
||||||
|
$p1 = self::factory()->post->create( array(
|
||||||
|
'post_date' => '2015-04-04 04:04:04',
|
||||||
|
) );
|
||||||
|
$p2 = self::factory()->post->create( array(
|
||||||
|
'post_date' => '2014-04-04 04:04:04',
|
||||||
|
) );
|
||||||
|
|
||||||
|
$found = get_posts( array(
|
||||||
|
'numberposts' => 1,
|
||||||
|
'orderby' => 'date',
|
||||||
|
'order' => 'DESC',
|
||||||
|
'fields' => 'ids',
|
||||||
|
'offset' => 0,
|
||||||
|
) );
|
||||||
|
|
||||||
|
$this->assertSame( array( $p1 ), $found );
|
||||||
|
}
|
||||||
|
|
||||||
|
public function test_offset_non_0_should_be_respected() {
|
||||||
|
$p1 = self::factory()->post->create( array(
|
||||||
|
'post_date' => '2015-04-04 04:04:04',
|
||||||
|
) );
|
||||||
|
$p2 = self::factory()->post->create( array(
|
||||||
|
'post_date' => '2014-04-04 04:04:04',
|
||||||
|
) );
|
||||||
|
|
||||||
|
$found = get_posts( array(
|
||||||
|
'numberposts' => 1,
|
||||||
|
'orderby' => 'date',
|
||||||
|
'order' => 'DESC',
|
||||||
|
'fields' => 'ids',
|
||||||
|
'offset' => 1,
|
||||||
|
) );
|
||||||
|
|
||||||
|
$this->assertSame( array( $p2 ), $found );
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @ticket 34060
|
||||||
|
*/
|
||||||
|
public function test_paged_should_not_be_overridden_by_default_offset() {
|
||||||
|
$p1 = self::factory()->post->create( array(
|
||||||
|
'post_date' => '2015-04-04 04:04:04',
|
||||||
|
) );
|
||||||
|
$p2 = self::factory()->post->create( array(
|
||||||
|
'post_date' => '2014-04-04 04:04:04',
|
||||||
|
) );
|
||||||
|
|
||||||
|
$found = get_posts( array(
|
||||||
|
'orderby' => 'date',
|
||||||
|
'order' => 'DESC',
|
||||||
|
'fields' => 'ids',
|
||||||
|
'paged' => 2,
|
||||||
|
'posts_per_page' => 1,
|
||||||
|
) );
|
||||||
|
|
||||||
|
$this->assertSame( array( $p2 ), $found );
|
||||||
|
}
|
||||||
|
|
||||||
|
public function test_explicit_offset_0_should_override_paged() {
|
||||||
|
$p1 = self::factory()->post->create( array(
|
||||||
|
'post_date' => '2015-04-04 04:04:04',
|
||||||
|
) );
|
||||||
|
$p2 = self::factory()->post->create( array(
|
||||||
|
'post_date' => '2014-04-04 04:04:04',
|
||||||
|
) );
|
||||||
|
|
||||||
|
$found = get_posts( array(
|
||||||
|
'orderby' => 'date',
|
||||||
|
'order' => 'DESC',
|
||||||
|
'fields' => 'ids',
|
||||||
|
'paged' => 2,
|
||||||
|
'posts_per_page' => 1,
|
||||||
|
'offset' => 0,
|
||||||
|
) );
|
||||||
|
|
||||||
|
$this->assertSame( array( $p1 ), $found );
|
||||||
|
}
|
||||||
|
|
||||||
|
public function test_explicit_offset_non_0_should_override_paged() {
|
||||||
|
$p1 = self::factory()->post->create( array(
|
||||||
|
'post_date' => '2015-04-04 04:04:04',
|
||||||
|
) );
|
||||||
|
$p2 = self::factory()->post->create( array(
|
||||||
|
'post_date' => '2014-04-04 04:04:04',
|
||||||
|
) );
|
||||||
|
$p3 = self::factory()->post->create( array(
|
||||||
|
'post_date' => '2013-04-04 04:04:04',
|
||||||
|
) );
|
||||||
|
|
||||||
|
$found = get_posts( array(
|
||||||
|
'orderby' => 'date',
|
||||||
|
'order' => 'DESC',
|
||||||
|
'fields' => 'ids',
|
||||||
|
'paged' => 2,
|
||||||
|
'posts_per_page' => 1,
|
||||||
|
'offset' => 2,
|
||||||
|
) );
|
||||||
|
|
||||||
|
$this->assertSame( array( $p3 ), $found );
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user