WordPress.org

Make WordPress Core

Ticket #31101: 31101.diff

File 31101.diff, 2.0 KB (added by boonebgorges, 3 years ago)
  • src/wp-includes/comment.php

    diff --git src/wp-includes/comment.php src/wp-includes/comment.php
    index 58ffb03..9ce11a0 100644
    function get_page_of_comment( $comment_ID, $args = array() ) { 
    913913                if ( $args['max_depth'] > 1 && 0 != $comment->comment_parent )
    914914                        return get_page_of_comment( $comment->comment_parent, $args );
    915915
     916                if ( 'desc' === get_option( 'comment_order' ) ) {
     917                        $compare = 'after';
     918                } else {
     919                        $compare = 'before';
     920                }
     921
    916922                $comment_args = array(
    917923                        'type'       => $args['type'],
    918924                        'post_id'    => $comment->comment_post_ID,
    function get_page_of_comment( $comment_ID, $args = array() ) { 
    923929                        'date_query' => array(
    924930                                array(
    925931                                        'column' => "$wpdb->comments.comment_date_gmt",
    926                                         'before' => $comment->comment_date_gmt,
     932                                        $compare => $comment->comment_date_gmt,
    927933                                )
    928934                        ),
    929935                );
  • tests/phpunit/tests/comment/getPageOfComment.php

    diff --git tests/phpunit/tests/comment/getPageOfComment.php tests/phpunit/tests/comment/getPageOfComment.php
    index b41f649..e8c0d4e 100644
    class Tests_Comment_GetPageOfComment extends WP_UnitTestCase { 
    238238
    239239                $this->assertEquals( 2, get_page_of_comment( $c1 ) );
    240240        }
     241
     242        /**
     243         * @ticket 31101
     244         */
     245        public function test_should_respect_comment_order_newest() {
     246                $now = time();
     247
     248                $p = self::factory()->post->create();
     249                $c1 = self::factory()->comment->create( array( 'comment_post_ID' => $p, 'comment_date_gmt' => date( 'Y-m-d H:i:s', $now ) ) );
     250                $c2 = self::factory()->comment->create( array( 'comment_post_ID' => $p, 'comment_date_gmt' => date( 'Y-m-d H:i:s', $now - 20 ) ) );
     251                $c3 = self::factory()->comment->create( array( 'comment_post_ID' => $p, 'comment_date_gmt' => date( 'Y-m-d H:i:s', $now - 30 ) ) );
     252
     253                update_option( 'comment_order', 'desc' );
     254                update_option( 'page_comments', 1 );
     255                update_option( 'comments_per_page', 2 );
     256
     257                $this->assertEquals( 2, get_page_of_comment( $c3 ) );
     258        }
    241259}