Ticket #27952: 27952.diff
| File 27952.diff, 2.9 KB (added by , 12 years ago) |
|---|
-
src/wp-includes/ms-blogs.php
892 892 wpmu_update_blogs_date(); 893 893 } 894 894 895 /** 896 * Handler for updating the blog posts count date when a post is deleted. 897 * 898 * @since 4.0 899 * 900 * @param int $post_id Post ID 901 */ 902 function _update_posts_count_on_delete( $post_id ) { 903 if ( 'publish' !== get_post_field( 'post_status', $post_id ) ) { 904 return; 905 } 906 907 update_posts_count(); 908 } 909 910 /** 911 * Handler for updating the blog posts count date when a post status changes. 912 * 913 * @since 4.0 914 * 915 * @param string $new_status The status the post is changing to. 916 * @param string $old_status The status the post is changing from. 917 */ 918 function _update_posts_count_on_transition_post_status( $new_status, $old_status ) { 919 if ( $new_status === $old_status ) { 920 return; 921 } 922 923 if ( 'publish' !== $new_status && 'publish' !== $old_status ) { 924 return; 925 } 926 927 update_posts_count(); 928 } 929 -
src/wp-includes/ms-default-filters.php
34 34 35 35 // Administration 36 36 add_filter( 'term_id_filter', 'global_terms', 10, 2 ); 37 add_action( ' publish_post', 'update_posts_count' );37 add_action( 'delete_post', '_update_posts_count_on_delete' ); 38 38 add_action( 'delete_post', '_update_blog_date_on_post_delete' ); 39 39 add_action( 'transition_post_status', '_update_blog_date_on_post_publish', 10, 3 ); 40 add_action( 'transition_post_status', '_update_posts_count_on_transition_post_status', 10, 2 ); 40 41 41 42 // Counts 42 43 add_action( 'admin_init', 'wp_schedule_update_network_counts'); -
src/wp-includes/ms-functions.php
1761 1761 * WordPress MS stores a blog's post count as an option so as 1762 1762 * to avoid extraneous COUNTs when a blog's details are fetched 1763 1763 * with get_blog_details(). This function is called when posts 1764 * are published to make sure the count stays current.1764 * are published or unpublished to make sure the count stays current. 1765 1765 * 1766 1766 * @since MU 1767 1767 */ -
tests/phpunit/tests/ms.php
1385 1385 $GLOBALS['super_admins'] = $old_global; 1386 1386 } 1387 1387 } 1388 1389 /** 1390 * @ticket 27952 1391 */ 1392 function test_posts_count() { 1393 $this->factory->post->create(); 1394 $post2 = $this->factory->post->create(); 1395 $this->assertEquals( 2, get_blog_details()->post_count ); 1396 1397 wp_delete_post( $post2 ); 1398 $this->assertEquals( 1, get_blog_details()->post_count ); 1399 } 1388 1400 } 1389 1401 1390 1402 endif;