Comments: Comments don’t need no Post ID when created, so they don’t be needing one to be edited.

In `wp_update_comment()` only check if the given `comment_post_ID` is valid if it isn’t `0`.  This allows comments that were created programmatically via `wp_insert_comment()` without the (optional) `comment_post_ID` parameter to be edited.

Props subharanjan for the initial patch.
Fixes #34954



git-svn-id: https://develop.svn.wordpress.org/trunk@35853 602fd350-edb4-49c9-b593-d223f7449a82
This commit is contained in:
Rachel Baker 2015-12-10 15:16:51 +00:00
parent 52384c2e6b
commit d13adcc9bf
2 changed files with 16 additions and 1 deletions

View File

@ -1904,7 +1904,7 @@ function wp_update_comment($commentarr) {
}
// Make sure that the comment post ID is valid (if specified).
if ( isset( $commentarr['comment_post_ID'] ) && ! get_post( $commentarr['comment_post_ID'] ) ) {
if ( ! empty( $commentarr['comment_post_ID'] ) && ! get_post( $commentarr['comment_post_ID'] ) ) {
return 0;
}

View File

@ -70,6 +70,21 @@ class Tests_Comment extends WP_UnitTestCase {
$this->assertEquals( 1, $comment->user_id );
}
/**
* @ticket 34954
*/
function test_wp_update_comment_with_no_post_id() {
$comment_id = self::factory()->comment->create( array( 'comment_post_ID' => 0 ) );
$updated_comment_text = 'I should be able to update a comment with a Post ID of zero';
$update = wp_update_comment( array( 'comment_ID' => $comment_id, 'comment_content' => $updated_comment_text, 'comment_post_ID' => 0 ) );
$this->assertSame( 1, $update );
$comment = get_comment( $comment_id );
$this->assertEquals( $updated_comment_text, $comment->comment_content );
}
public function test_get_approved_comments() {
$ca1 = self::factory()->comment->create( array(
'comment_post_ID' => self::$post_id, 'comment_approved' => '1'