Taxonomy: Prevent wp_list_categories() from producing not well-nested output if hide_title_if_empty is true.

Props chesio.
Fixes #38839. See #33460.

git-svn-id: https://develop.svn.wordpress.org/trunk@39280 602fd350-edb4-49c9-b593-d223f7449a82
This commit is contained in:
Sergey Biryukov 2016-11-17 18:01:13 +00:00
parent 1c547f56c1
commit f493ebb369
2 changed files with 18 additions and 1 deletions

View File

@ -624,8 +624,9 @@ function wp_list_categories( $args = '' ) {
$output .= walk_category_tree( $categories, $depth, $r );
}
if ( $r['title_li'] && 'list' == $r['style'] )
if ( $r['title_li'] && 'list' == $r['style'] && ( ! empty( $categories ) || ! $r['hide_title_if_empty'] ) ) {
$output .= '</ul></li>';
}
/**
* Filters the HTML output of a taxonomy list.

View File

@ -265,6 +265,22 @@ class Tests_Category_WpListCategories extends WP_UnitTestCase {
$this->assertContains( '<li class="categories">Categories', $found );
}
/**
* @ticket 38839
*/
public function test_hide_title_if_empty_should_not_output_stray_closing_tags() {
$cat = self::factory()->category->create();
$found = wp_list_categories( array(
'echo' => false,
'show_option_none' => '',
'child_of' => 1,
'hide_title_if_empty' => true,
) );
$this->assertNotContains( '</ul></li>', $found );
}
/**
* @ticket 12981
*/