diff --git a/src/wp-includes/ms-blogs.php b/src/wp-includes/ms-blogs.php index 19594eef6b..c5ef1c157c 100644 --- a/src/wp-includes/ms-blogs.php +++ b/src/wp-includes/ms-blogs.php @@ -877,12 +877,12 @@ function _update_blog_date_on_post_delete( $post_id ) { * Handler for updating the current site's posts count when a post is deleted. * * @since 4.0.0 + * @since 6.2.0 Added the `$post` parameter. * - * @param int $post_id Post ID. + * @param int $post_id Post ID. + * @param WP_Post $post Post object. */ -function _update_posts_count_on_delete( $post_id ) { - $post = get_post( $post_id ); - +function _update_posts_count_on_delete( $post_id, $post ) { if ( ! $post || 'publish' !== $post->post_status || 'post' !== $post->post_type ) { return; } diff --git a/src/wp-includes/ms-default-filters.php b/src/wp-includes/ms-default-filters.php index c0af7215ff..8682d48e18 100644 --- a/src/wp-includes/ms-default-filters.php +++ b/src/wp-includes/ms-default-filters.php @@ -75,7 +75,7 @@ add_action( 'template_redirect', 'maybe_redirect_404' ); add_filter( 'allowed_redirect_hosts', 'redirect_this_site' ); // Administration. -add_action( 'after_delete_post', '_update_posts_count_on_delete' ); +add_action( 'after_delete_post', '_update_posts_count_on_delete', 10, 2 ); 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 ); diff --git a/tests/phpunit/tests/multisite/updatePostsCount.php b/tests/phpunit/tests/multisite/updatePostsCount.php index 270ac60c49..bf3fcb879f 100644 --- a/tests/phpunit/tests/multisite/updatePostsCount.php +++ b/tests/phpunit/tests/multisite/updatePostsCount.php @@ -30,7 +30,7 @@ if ( is_multisite() ) : $post_count_after_creating = get_site()->post_count; - wp_delete_post( $post_id ); + wp_delete_post( $post_id, true ); $post_count_after_deleting = get_site()->post_count; @@ -47,7 +47,7 @@ if ( is_multisite() ) : /* * Check that posts count is updated when a post is deleted: - * add_action( 'deleted_post', '_update_posts_count_on_delete' ); + * add_action( 'after_delete_post', '_update_posts_count_on_delete', 10, 2 ); * * Check that _update_posts_count_on_delete() is called on that filter, * which then calls update_posts_count() to update the count.