WordPress.org

Make WordPress Core

Ticket #11838: 11838.2.diff

File 11838.2.diff, 3.0 KB (added by jfarthing84, 4 years ago)

Changes needed to make wp_list_categories() custom taxonomy aware.

  • category-template.php

     
    438438 */ 
    439439function wp_list_categories( $args = '' ) { 
    440440        $defaults = array( 
    441                 'show_option_all' => '', 'orderby' => 'name', 
    442                 'order' => 'ASC', 'show_last_update' => 0, 
    443                 'style' => 'list', 'show_count' => 0, 
    444                 'hide_empty' => 1, 'use_desc_for_title' => 1, 
    445                 'child_of' => 0, 'feed' => '', 'feed_type' => '', 
    446                 'feed_image' => '', 'exclude' => '', 'exclude_tree' => '', 'current_category' => 0, 
     441                'show_option_all' => '', 'show_option_none' => __('No categories'), 
     442                'orderby' => 'name', 'order' => 'ASC', 
     443                'show_last_update' => 0, 'style' => 'list', 
     444                'show_count' => 0, 'hide_empty' => 1, 
     445                'use_desc_for_title' => 1, 'child_of' => 0, 
     446                'feed' => '', 'feed_type' => '', 
     447                'feed_image' => '', 'exclude' => '', 
     448                'exclude_tree' => '', 'current_category' => 0, 
    447449                'hierarchical' => true, 'title_li' => __( 'Categories' ), 
    448                 'echo' => 1, 'depth' => 0 
     450                'echo' => 1, 'depth' => 0, 
     451                'taxonomy' => 'category' 
    449452        ); 
    450453 
    451454        $r = wp_parse_args( $args, $defaults ); 
     
    462465                $r['exclude_tree'] = $r['exclude']; 
    463466                $r['exclude'] = ''; 
    464467        } 
     468         
     469        if ( !isset( $r['class'] ) ) { 
     470                $r['class'] = ( 'category' == $r['taxonomy'] ) ? 'categories' : $r['taxonomy']; 
     471        } 
    465472 
    466473        extract( $r ); 
    467474 
     
    469476 
    470477        $output = ''; 
    471478        if ( $title_li && 'list' == $style ) 
    472                         $output = '<li class="categories">' . $r['title_li'] . '<ul>'; 
     479                        $output = '<li class="' . $class . '">' . $title_li . '<ul>'; 
    473480 
    474481        if ( empty( $categories ) ) { 
    475                 if ( 'list' == $style ) 
    476                         $output .= '<li>' . __( "No categories" ) . '</li>'; 
    477                 else 
    478                         $output .= __( "No categories" ); 
     482                if ( ! empty( $show_option_none ) ) { 
     483                        if ( 'list' == $style ) 
     484                                $output .= '<li>' . $show_option_none . '</li>'; 
     485                        else 
     486                                $output .= $show_option_none; 
     487                } 
    479488        } else { 
    480489                global $wp_query; 
    481490 
     
    485494                        else 
    486495                                $output .= '<a href="' .  get_bloginfo( 'url' )  . '">' . $show_option_all . '</a>'; 
    487496 
    488                 if ( empty( $r['current_category'] ) && is_category() ) 
     497                if ( empty( $r['current_category'] ) && ( is_category() || is_tax() ) ) 
    489498                        $r['current_category'] = $wp_query->get_queried_object_id(); 
    490499 
    491500                if ( $hierarchical ) 
  • classes.php

     
    13421342 
    13431343                $cat_name = esc_attr( $category->name); 
    13441344                $cat_name = apply_filters( 'list_cats', $cat_name, $category ); 
    1345                 $link = '<a href="' . get_category_link( $category->term_id ) . '" '; 
     1345                if ( 'category' == $category->taxonomy ) 
     1346                        $link = '<a href="' . get_category_link( $category->term_id ) . '" '; 
     1347                else 
     1348                        $link = '<a href="' . get_term_link( $category, $category->taxonomy ) . '" '; 
    13461349                if ( $use_desc_for_title == 0 || empty($category->description) ) 
    13471350                        $link .= 'title="' . sprintf(__( 'View all posts filed under %s' ), $cat_name) . '"'; 
    13481351                else