Revisions: add a new filter for revisions to keep by post type.

Add a new `wp_{$post_type}_revisions_to_keep` filter that makes it convenient to filter the number of revisions created for a specific post type.

Overrides both the value of WP_POST_REVISIONS and the `wp_revisions_to_keep` filter.

Props dlh.
Fixes #51550.



git-svn-id: https://develop.svn.wordpress.org/trunk@50949 602fd350-edb4-49c9-b593-d223f7449a82
This commit is contained in:
Adam Silverstein
2021-05-21 15:28:39 +00:00
parent b7c75ec920
commit 62327715a0
2 changed files with 77 additions and 1 deletions
+59
View File
@@ -576,4 +576,63 @@ class Tests_Post_Revisions extends WP_UnitTestCase {
$this->assertSame( $revision_ids, array_values( wp_list_pluck( $revisions, 'ID' ) ) );
}
/*
* @ticket 51550
*/
public function test_wp_revisions_to_keep_filter() {
$post = self::factory()->post->create_and_get(
array(
'post_title' => 'some-post',
'post_type' => 'post',
'post_content' => 'some_content',
)
);
$default = wp_revisions_to_keep( $post );
$expected = $default + 1;
add_filter(
'wp_revisions_to_keep',
function () use ( $expected ) {
return $expected;
}
);
$this->assertSame( $expected, wp_revisions_to_keep( $post ) );
}
/*
* @ticket 51550
*/
public function test_wp_post_type_revisions_to_keep_filter() {
$post = self::factory()->post->create_and_get(
array(
'post_title' => 'some-post',
'post_type' => 'post',
'post_content' => 'some_content',
)
);
$default = wp_revisions_to_keep( $post );
$generic = $default + 1;
add_filter(
'wp_revisions_to_keep',
function () use ( $generic ) {
return $generic;
}
);
$this->assertSame( $generic, wp_revisions_to_keep( $post ) );
$expected = $generic + 1;
add_filter(
"wp_{$post->post_type}_revisions_to_keep",
function () use ( $expected ) {
return $expected;
}
);
$this->assertSame( $expected, wp_revisions_to_keep( $post ) );
}
}