Skip to content

Commit

Permalink
Pings/Trackbacks: Avoid adding multiple _pingme and _encloseme me…
Browse files Browse the repository at this point in the history
…ta entries to a post when it gets updated prior to pings being done.

Props rebasaurus, whyisjake

Fixes #48014


git-svn-id: https://develop.svn.wordpress.org/trunk@46426 602fd350-edb4-49c9-b593-d223f7449a82
  • Loading branch information
johnbillion committed Oct 7, 2019
1 parent 5e943fa commit 16b45f0
Show file tree
Hide file tree
Showing 2 changed files with 25 additions and 2 deletions.
4 changes: 2 additions & 2 deletions src/wp-includes/post.php
Expand Up @@ -6800,9 +6800,9 @@ function _publish_post_hook( $post_id ) {
}

if ( get_option( 'default_pingback_flag' ) ) {
add_post_meta( $post_id, '_pingme', '1' );
add_post_meta( $post_id, '_pingme', '1', true );
}
add_post_meta( $post_id, '_encloseme', '1' );
add_post_meta( $post_id, '_encloseme', '1', true );

$to_ping = get_to_ping( $post_id );
if ( ! empty( $to_ping ) ) {
Expand Down
23 changes: 23 additions & 0 deletions tests/phpunit/tests/post.php
Expand Up @@ -1430,4 +1430,27 @@ public function test_insert_post_should_respect_date_floating_post_status_arg_no
$post = get_post( $post_id );
self::assertEquals( strtotime( gmdate( 'Y-m-d H:i:s' ) ), strtotime( $post->post_date_gmt ), 'The dates should be equal', 2 );
}

/**
* @ticket 48014
*/
public function test_updated_post_should_not_duplicate_enclosure_meta_fields() {
$post_id = self::factory()->post->create();

$encloseme_before = get_post_meta( $post_id, '_encloseme' );
$pingme_before = get_post_meta( $post_id, '_pingme' );

$updated = wp_update_post( get_post( $post_id ), true );

$encloseme_after = get_post_meta( $post_id, '_encloseme' );
$pingme_after = get_post_meta( $post_id, '_pingme' );

$this->assertSame( $post_id, $updated );

$this->assertCount( 1, $encloseme_before );
$this->assertCount( 1, $encloseme_after );

$this->assertCount( 1, $pingme_before );
$this->assertCount( 1, $pingme_after );
}
}

0 comments on commit 16b45f0

Please sign in to comment.