mirror of
git://develop.git.wordpress.org/
synced 2025-03-23 05:20:01 +01:00
Posts, Post Types: Multisite: Decrement post_count
option value when a post is deleted.
Previously, the `post_count` option value was not decremented when a post was deleted. This change moves the `_update_posts_count_on_delete` action from `delete_post` hook to `after_delete_post` to ensure the deletion is taken into account. Props henry.wright, pbearne, audrasjb. Fixes #53443. git-svn-id: https://develop.svn.wordpress.org/trunk@52207 602fd350-edb4-49c9-b593-d223f7449a82
This commit is contained in:
parent
47d8c7313e
commit
c25c175b47
@ -76,7 +76,7 @@ add_filter( 'allowed_redirect_hosts', 'redirect_this_site' );
|
||||
|
||||
// Administration.
|
||||
add_filter( 'term_id_filter', 'global_terms', 10, 2 );
|
||||
add_action( 'delete_post', '_update_posts_count_on_delete' );
|
||||
add_action( 'after_delete_post', '_update_posts_count_on_delete' );
|
||||
add_action( 'delete_post', '_update_blog_date_on_post_delete' );
|
||||
add_action( 'transition_post_status', '_update_blog_date_on_post_publish', 10, 3 );
|
||||
add_action( 'transition_post_status', '_update_posts_count_on_transition_post_status', 10, 3 );
|
||||
|
56
tests/phpunit/tests/multisite/updatePostsCount.php
Normal file
56
tests/phpunit/tests/multisite/updatePostsCount.php
Normal file
@ -0,0 +1,56 @@
|
||||
<?php
|
||||
|
||||
if ( is_multisite() ) :
|
||||
/**
|
||||
* Test update_posts_count() get called via filters of WP_Site in multisite.
|
||||
*
|
||||
* @group ms-site
|
||||
* @group multisite
|
||||
*
|
||||
* @covers ::_update_posts_count_on_delete
|
||||
*/
|
||||
class Tests_update_posts_count_on_delete extends WP_UnitTestCase {
|
||||
|
||||
/**
|
||||
* Test that the posts count is updated correctly when a posts are added and deleted.
|
||||
* @ticket 53443
|
||||
*/
|
||||
public function test_update_posts_count_on_delete() {
|
||||
|
||||
$blog_id = self::factory()->blog->create();
|
||||
switch_to_blog( $blog_id );
|
||||
|
||||
$current_post_count = (int) get_option( 'post_count' );
|
||||
|
||||
$post_id = self::factory()->post->create(
|
||||
array(
|
||||
'post_type' => 'post',
|
||||
'post_author' => '1',
|
||||
'post_date' => '2012-10-23 19:34:42',
|
||||
'post_status' => 'publish',
|
||||
)
|
||||
);
|
||||
|
||||
/**
|
||||
* Check that add_action( 'deleted_post', '_update_posts_count_on_delete' ) is called when a post is created.
|
||||
* Check that _update_posts_count_on_transition_post_status() is called on that filter which then calls
|
||||
* update_posts_count to update the count.
|
||||
*/
|
||||
$this->assertEquals( $current_post_count + 1, (int) get_option( 'post_count' ), 'post added' );
|
||||
|
||||
wp_delete_post( $post_id );
|
||||
|
||||
/**
|
||||
* Check that add_action( 'transition_post_status', '_update_posts_count_on_transition_post_status', 10, 3 )
|
||||
* is called when a post is deleted.
|
||||
* Check that _update_posts_count_on_delete() is called on that filter which then calls update_posts_count
|
||||
* to update the count.
|
||||
*/
|
||||
$this->assertEquals( $current_post_count, (int) get_option( 'post_count' ), 'post deleted' );
|
||||
|
||||
restore_current_blog();
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
endif;
|
Loading…
x
Reference in New Issue
Block a user