WordPress.org

Make WordPress Core

Ticket #41826: 41826.2.patch

File 41826.2.patch, 1.8 KB (added by birgire, 4 years ago)
  • src/wp-includes/class-wp-comment-query.php

     
    632632
    633633                $number = absint( $this->query_vars['number'] );
    634634                $offset = absint( $this->query_vars['offset'] );
    635                 $paged = absint( $this->query_vars['paged'] );
     635                $paged  = absint( $this->query_vars['paged'] );
    636636
    637                 if ( ! empty( $number ) ) {
    638                         if ( $offset ) {
    639                                 $limits = 'LIMIT ' . $offset . ',' . $number;
     637                // Limit
     638                if ( $number > 0 ) {
     639                        if ( $offset > 0 ) {
     640                                $calc_offset = $offset;
     641                        } elseif( $paged > 0 ) {
     642                                $calc_offset = $number * ( $paged - 1 );   
    640643                        } else {
    641                                 $limits = 'LIMIT ' . ( $number * ( $paged - 1 ) ) . ',' . $number;
     644                                $calc_offset = 0;
    642645                        }
     646                        $limits = $wpdb->prepare( "LIMIT %d, %d", $calc_offset, $number );
    643647                }
    644648
     649
     650
    645651                if ( $this->query_vars['count'] ) {
    646652                        $fields = 'COUNT(*)';
    647653                } else {
  • tests/phpunit/tests/comment/query.php

     
    16351635                $this->assertSame( $expected, $found );
    16361636        }
    16371637
     1638        /**
     1639         * @ticket 41826
     1640         */
     1641        public function test_paged_zero_should_be_same_as_paged_one() {
     1642
     1643                $query0 = new WP_Comment_Query();
     1644                $found0 = $query0->query( array(
     1645                        'paged'         => 0,
     1646                        'number'        => 2,
     1647                ) );
     1648
     1649                $query1 = new WP_Comment_Query();
     1650                $found1 = $query1->query( array(
     1651                        'paged'         => 1,
     1652                        'number'        => 2,
     1653                ) );
     1654
     1655                $this->assertSame( $query0->request, $query1->request );
     1656        }
     1657
    16381658        public function test_post_type_single_value() {
    16391659                register_post_type( 'post-type-1' );
    16401660                register_post_type( 'post-type-2' );