Make WordPress Core

Ticket #35377: 35377.diff

File 35377.diff, 3.3 KB (added by swissspidy, 9 years ago)
  • src/wp-includes/class-wp-comment-query.php

    diff --git src/wp-includes/class-wp-comment-query.php src/wp-includes/class-wp-comment-query.php
    index e30094d..ac122a6 100644
    class WP_Comment_Query { 
    139139         * @since 4.4.0 `$parent__in` and `$parent__not_in` were added.
    140140         * @since 4.4.0 Order by `comment__in` was added. `$update_comment_meta_cache`, `$no_found_rows`,
    141141         *              `$hierarchical`, and `$update_comment_post_cache` were added.
     142         * @since 4.5.0 `$author_url` was added.
    142143         * @access public
    143144         *
    144145         * @param string|array $query {
    145146         *     Optional. Array or query string of comment query parameters. Default empty.
    146147         *
    147148         *     @type string       $author_email              Comment author email address. Default empty.
     149         *     @type string       $author_url                Comment author URL. Default empty.
    148150         *     @type array        $author__in                Array of author IDs to include comments for. Default empty.
    149151         *     @type array        $author__not_in            Array of author IDs to exclude comments for. Default empty.
    150152         *     @type array        $comment__in               Array of comment IDs to include. Default empty.
    class WP_Comment_Query { 
    245247        public function __construct( $query = '' ) {
    246248                $this->query_var_defaults = array(
    247249                        'author_email' => '',
     250                        'author_url' => '',
    248251                        'author__in' => '',
    249252                        'author__not_in' => '',
    250253                        'include_unapproved' => '',
    class WP_Comment_Query { 
    670673                        $this->sql_clauses['where']['author_email'] = $wpdb->prepare( 'comment_author_email = %s', $this->query_vars['author_email'] );
    671674                }
    672675
     676                if ( '' !== $this->query_vars['author_url'] ) {
     677                        $this->sql_clauses['where']['author_url'] = $wpdb->prepare( 'comment_author_url = %s', $this->query_vars['author_url'] );
     678                }
     679
    673680                if ( '' !== $this->query_vars['karma'] ) {
    674681                        $this->sql_clauses['where']['karma'] = $wpdb->prepare( 'comment_karma = %d', $this->query_vars['karma'] );
    675682                }
  • tests/phpunit/tests/comment/query.php

    diff --git tests/phpunit/tests/comment/query.php tests/phpunit/tests/comment/query.php
    index 5d250ea..8163feb 100644
    class Tests_Comment_Query extends WP_UnitTestCase { 
    805805        }
    806806
    807807        /**
     808         * @ticket 35377
     809         */
     810        function test_get_comments_by_author_url() {
     811                $c1 = self::factory()->comment->create( array( 'comment_post_ID' => $this->post_id, 'comment_author' => 'bar', 'comment_author_email' => 'bar@example.com', 'comment_author_url' => 'http://foo.bar' ) );
     812                $c2 = self::factory()->comment->create( array( 'comment_post_ID' => $this->post_id, 'comment_author' => 'bar', 'comment_author_email' => 'bar@example.com', 'comment_author_url' => 'http://foo.bar' ) );
     813                $c3 = self::factory()->comment->create( array( 'comment_post_ID' => $this->post_id, 'comment_author' => 'bar', 'comment_author_email' => 'bar@example.com', 'comment_author_url' => 'http://foo.bar/baz' ) );
     814
     815                $comments = get_comments( array(
     816                        'author_url' => 'http://foo.bar',
     817                ) );
     818
     819                $this->assertCount( 2, $comments );
     820                $this->assertEquals( (string) $c1, $comments[0]->comment_ID );
     821                $this->assertEquals( (string) $c2, $comments[1]->comment_ID );
     822        }
     823
     824        /**
    808825         * @ticket 28434
    809826         */
    810827        function test_fields_ids_query() {