diff --git src/wp-includes/comment-template.php src/wp-includes/comment-template.php
index 42f3ef2023..7add13ff40 100644
|
|
function get_comments_number( $post_id = 0 ) { |
869 | 869 | * Display the language string for the number of comments the current post has. |
870 | 870 | * |
871 | 871 | * @since 0.71 |
| 872 | * @since 5.4 Added `$post_id` as the fifth parameter. |
872 | 873 | * |
873 | | * @param string $zero Optional. Text for no comments. Default false. |
874 | | * @param string $one Optional. Text for one comment. Default false. |
875 | | * @param string $more Optional. Text for more than one comment. Default false. |
876 | | * @param string $deprecated Not used. |
| 874 | * @param string $zero Optional. Text for no comments. Default false. |
| 875 | * @param string $one Optional. Text for one comment. Default false. |
| 876 | * @param string $more Optional. Text for more than one comment. Default false. |
| 877 | * @param string $deprecated Not used. |
| 878 | * @param int|WP_Post $post_id Optional. Post ID or WP_Post object. Default is the global `$post`. |
877 | 879 | */ |
878 | | function comments_number( $zero = false, $one = false, $more = false, $deprecated = '' ) { |
| 880 | function comments_number( $zero = false, $one = false, $more = false, $deprecated = '', $post_id = 0 ) { |
879 | 881 | if ( ! empty( $deprecated ) ) { |
880 | 882 | _deprecated_argument( __FUNCTION__, '1.3.0' ); |
881 | 883 | } |
882 | | echo get_comments_number_text( $zero, $one, $more ); |
| 884 | echo get_comments_number_text( $zero, $one, $more, $post_id ); |
883 | 885 | } |
884 | 886 | |
885 | 887 | /** |
886 | 888 | * Display the language string for the number of comments the current post has. |
887 | 889 | * |
888 | 890 | * @since 4.0.0 |
| 891 | * @since 5.4 Added `$post_id` as the fourth parameter to allow the usage of the function outside the loop. |
889 | 892 | * |
890 | 893 | * @param string $zero Optional. Text for no comments. Default false. |
891 | 894 | * @param string $one Optional. Text for one comment. Default false. |
892 | 895 | * @param string $more Optional. Text for more than one comment. Default false. |
| 896 | * @param int|WP_Post $post_id Optional. Post ID or WP_Post object. Default is the global `$post`. |
| 897 | * @return string Language string for the number of comments a post has. |
893 | 898 | */ |
894 | | function get_comments_number_text( $zero = false, $one = false, $more = false ) { |
895 | | $number = get_comments_number(); |
| 899 | function get_comments_number_text( $zero = false, $one = false, $more = false, $post_id = 0 ) { |
| 900 | $number = get_comments_number( $post_id ); |
896 | 901 | |
897 | 902 | if ( $number > 1 ) { |
898 | 903 | if ( false === $more ) { |
diff --git tests/phpunit/tests/comment/template.php tests/phpunit/tests/comment/template.php
index cabfb36da0..73f6493bda 100644
|
|
class Tests_Comment_Template extends WP_UnitTestCase { |
52 | 52 | |
53 | 53 | } |
54 | 54 | |
| 55 | /** |
| 56 | * @ticket 48772 |
| 57 | */ |
| 58 | function test_get_comments_number_text_outside_loop() { |
| 59 | $post_id = $this->factory->post->create(); |
| 60 | $this->factory->comment->create_post_comments( $post_id, 6 ); |
| 61 | |
| 62 | $comments_number_text = get_comments_number_text( false, false, false, $post_id ); |
| 63 | |
| 64 | $this->assertEquals( sprintf( _n( '%s Comment', '%s Comments', 6 ), '6' ), $comments_number_text ); |
| 65 | } |
| 66 | |
55 | 67 | /** |
56 | 68 | * @ticket 13651 |
57 | 69 | * @dataProvider data_get_comments_number_text_declension |