diff --git a/src/wp-includes/comment-template.php b/src/wp-includes/comment-template.php index b10fe1415e..69dcc1629a 100644 --- a/src/wp-includes/comment-template.php +++ b/src/wp-includes/comment-template.php @@ -1646,6 +1646,10 @@ function get_comment_reply_link( $args = array(), $comment = null, $post = null $comment = get_comment( $comment ); + if ( empty( $comment ) ) { + return; + } + if ( empty( $post ) ) { $post = $comment->comment_post_ID; } diff --git a/tests/phpunit/tests/comment/getCommentReplyLink.php b/tests/phpunit/tests/comment/getCommentReplyLink.php index 5ca395e610..73e288501c 100644 --- a/tests/phpunit/tests/comment/getCommentReplyLink.php +++ b/tests/phpunit/tests/comment/getCommentReplyLink.php @@ -66,4 +66,24 @@ class Tests_Comment_GetCommentReplyLink extends WP_UnitTestCase { $this->assertContains( $expected_url, $comment_reply_link ); } + + /** + * @ticket 41846 + */ + public function test_should_return_null_when_depth_less_than_max_depth_and_comment_null_and_no_current_global_comment() { + + // Let max depth be greater than depth and depth be non-zero. + $args = array( + 'depth' => 1, + 'max_depth' => 2, + ); + + // Make sure there's no global comment object. + add_filter( 'get_comment', '__return_null' ); + + $actual = get_comment_reply_link( $args ); + + $this->assertNull( $actual ); + } + }