diff --git a/src/wp-includes/class-walker-category.php b/src/wp-includes/class-walker-category.php index e9975ef1af..4c155c721b 100644 --- a/src/wp-includes/class-walker-category.php +++ b/src/wp-includes/class-walker-category.php @@ -104,7 +104,7 @@ class Walker_Category extends Walker { ); // Don't generate an element if the category name is empty. - if ( ! $cat_name ) { + if ( '' === $cat_name ) { return; } diff --git a/tests/phpunit/tests/category/wpListCategories.php b/tests/phpunit/tests/category/wpListCategories.php index 6d428c8204..4d75b4ac00 100644 --- a/tests/phpunit/tests/category/wpListCategories.php +++ b/tests/phpunit/tests/category/wpListCategories.php @@ -103,6 +103,35 @@ class Tests_Category_WpListCategories extends WP_UnitTestCase { $this->assertNotContains( 'Test Cat 1', $found ); } + public function list_cats_callback( $cat ) { + if ( 'Test Cat 1' === $cat ) { + return ''; + } + + return $cat; + } + + /** + * @ticket 44872 + */ + public function test_should_create_element_when_cat_name_is_zero() { + $c = self::factory()->category->create( + array( + 'name' => '0', + ) + ); + + $found = wp_list_categories( + array( + 'hide_empty' => false, + 'echo' => false, + ) + ); + + $this->assertContains( "cat-item-$c", $found ); + $this->assertContains( '0', $found ); + } + public function test_show_option_all_link_should_go_to_home_page_when_show_on_front_is_false() { $cats = self::factory()->category->create_many( 2 ); @@ -247,14 +276,6 @@ class Tests_Category_WpListCategories extends WP_UnitTestCase { $this->assertContains( "