diff --git a/src/wp-includes/category-template.php b/src/wp-includes/category-template.php index c7352d5c5e..fb789606f4 100644 --- a/src/wp-includes/category-template.php +++ b/src/wp-includes/category-template.php @@ -461,6 +461,7 @@ function wp_dropdown_categories( $args = '' ) { * Display or retrieve the HTML list of categories. * * @since 2.1.0 + * @since 4.4.0 Introduced the `hide_title_if_no_cats` argument. * * @param string|array $args { * Array of optional arguments. @@ -491,6 +492,8 @@ function wp_dropdown_categories( $args = '' ) { * See {@link get_terms()}. Default true. * @type string $title_li Text to use for the list title `
  • ` element. Pass an empty string * to disable. Default 'Categories'. + * @type bool $hide_title_if_no_cats Whether to hide the `$title_li` element if there are no terms in + * the list. Default false (title will always be shown). * @type int $depth Category depth. Used for tab indentation. Default 0. * @type string $taxonomy Taxonomy name. Default 'category'. * } @@ -507,6 +510,7 @@ function wp_list_categories( $args = '' ) { 'feed_image' => '', 'exclude' => '', 'exclude_tree' => '', 'current_category' => 0, 'hierarchical' => true, 'title_li' => __( 'Categories' ), + 'hide_title_if_no_cats' => false, 'echo' => 1, 'depth' => 0, 'taxonomy' => 'category' ); @@ -534,7 +538,7 @@ function wp_list_categories( $args = '' ) { $categories = get_categories( $r ); $output = ''; - if ( $r['title_li'] && 'list' == $r['style'] ) { + if ( $r['title_li'] && 'list' == $r['style'] && ( ! empty( $categories ) || ! $r['hide_title_if_no_cats'] ) ) { $output = '
  • ' . $r['title_li'] . '