WordPress.org

Make WordPress Core

Ticket #45059: 45059.patch

File 45059.patch, 8.9 KB (added by freewebmentor, 18 months ago)
  • category-template.php

     
    364364                );
    365365                $args['taxonomy'] = 'link_category';
    366366        }
     367        // Parse incoming $args into an array and merge it with $defaults
     368        $args                 = wp_parse_args( $args, $defaults );
     369        $option_none_value = $args['option_none_value'];
    367370
    368         $r                 = wp_parse_args( $args, $defaults );
    369         $option_none_value = $r['option_none_value'];
    370 
    371         if ( ! isset( $r['pad_counts'] ) && $r['show_count'] && $r['hierarchical'] ) {
    372                 $r['pad_counts'] = true;
     371        if ( ! isset( $args['pad_counts'] ) && $args['show_count'] && $args['hierarchical'] ) {
     372                $args['pad_counts'] = true;
    373373        }
    374374
    375         $tab_index = $r['tab_index'];
     375        $tab_index = $args['tab_index'];
    376376
    377377        $tab_index_attribute = '';
    378378        if ( (int) $tab_index > 0 ) {
     
    380380        }
    381381
    382382        // Avoid clashes with the 'name' param of get_terms().
    383         $get_terms_args = $r;
     383        $get_terms_args = $args;
    384384        unset( $get_terms_args['name'] );
    385         $categories = get_terms( $r['taxonomy'], $get_terms_args );
     385        $categories = get_terms( $args['taxonomy'], $get_terms_args );
    386386
    387         $name     = esc_attr( $r['name'] );
    388         $class    = esc_attr( $r['class'] );
    389         $id       = $r['id'] ? esc_attr( $r['id'] ) : $name;
    390         $required = $r['required'] ? 'required' : '';
     387        $name     = esc_attr( $args['name'] );
     388        $class    = esc_attr( $args['class'] );
     389        $id       = $args['id'] ? esc_attr( $args['id'] ) : $name;
     390        $required = $args['required'] ? 'required' : '';
    391391
    392         if ( ! $r['hide_if_empty'] || ! empty( $categories ) ) {
     392        if ( ! $args['hide_if_empty'] || ! empty( $categories ) ) {
    393393                $output = "<select $required name='$name' id='$id' class='$class' $tab_index_attribute>\n";
    394394        } else {
    395395                $output = '';
    396396        }
    397         if ( empty( $categories ) && ! $r['hide_if_empty'] && ! empty( $r['show_option_none'] ) ) {
     397        if ( empty( $categories ) && ! $args['hide_if_empty'] && ! empty( $args['show_option_none'] ) ) {
    398398
    399399                /**
    400400                 * Filters a taxonomy drop-down display element.
     
    411411                 * @param string       $element  Category name.
    412412                 * @param WP_Term|null $category The category object, or null if there's no corresponding category.
    413413                 */
    414                 $show_option_none = apply_filters( 'list_cats', $r['show_option_none'], null );
     414                $show_option_none = apply_filters( 'list_cats', $args['show_option_none'], null );
    415415                $output          .= "\t<option value='" . esc_attr( $option_none_value ) . "' selected='selected'>$show_option_none</option>\n";
    416416        }
    417417
    418418        if ( ! empty( $categories ) ) {
    419419
    420                 if ( $r['show_option_all'] ) {
     420                if ( $args['show_option_all'] ) {
    421421
    422422                        /** This filter is documented in wp-includes/category-template.php */
    423                         $show_option_all = apply_filters( 'list_cats', $r['show_option_all'], null );
    424                         $selected        = ( '0' === strval( $r['selected'] ) ) ? " selected='selected'" : '';
     423                        $show_option_all = apply_filters( 'list_cats', $args['show_option_all'], null );
     424                        $selected        = ( '0' === strval( $args['selected'] ) ) ? " selected='selected'" : '';
    425425                        $output         .= "\t<option value='0'$selected>$show_option_all</option>\n";
    426426                }
    427427
    428                 if ( $r['show_option_none'] ) {
     428                if ( $args['show_option_none'] ) {
    429429
    430430                        /** This filter is documented in wp-includes/category-template.php */
    431                         $show_option_none = apply_filters( 'list_cats', $r['show_option_none'], null );
    432                         $selected         = selected( $option_none_value, $r['selected'], false );
     431                        $show_option_none = apply_filters( 'list_cats', $args['show_option_none'], null );
     432                        $selected         = selected( $option_none_value, $args['selected'], false );
    433433                        $output          .= "\t<option value='" . esc_attr( $option_none_value ) . "'$selected>$show_option_none</option>\n";
    434434                }
    435435
    436                 if ( $r['hierarchical'] ) {
    437                         $depth = $r['depth'];  // Walk the full depth.
     436                if ( $args['hierarchical'] ) {
     437                        $depth = $args['depth'];  // Walk the full depth.
    438438                } else {
    439439                        $depth = -1; // Flat.
    440440                }
     
    441441                $output .= walk_category_dropdown_tree( $categories, $depth, $r );
    442442        }
    443443
    444         if ( ! $r['hide_if_empty'] || ! empty( $categories ) ) {
     444        if ( ! $args['hide_if_empty'] || ! empty( $categories ) ) {
    445445                $output .= "</select>\n";
    446446        }
    447447        /**
     
    454454         */
    455455        $output = apply_filters( 'wp_dropdown_cats', $output, $r );
    456456
    457         if ( $r['echo'] ) {
     457        if ( $args['echo'] ) {
    458458                echo $output;
    459459        }
    460460        return $output;
     
    537537                'use_desc_for_title'  => 1,
    538538        );
    539539
    540         $r = wp_parse_args( $args, $defaults );
     540        // Parse incoming $args into an array and merge it with $defaults
     541        $args = wp_parse_args( $args, $defaults );
    541542
    542         if ( ! isset( $r['pad_counts'] ) && $r['show_count'] && $r['hierarchical'] ) {
    543                 $r['pad_counts'] = true;
     543        if ( ! isset( $args['pad_counts'] ) && $args['show_count'] && $args['hierarchical'] ) {
     544                $args['pad_counts'] = true;
    544545        }
    545546
    546547        // Descendants of exclusions should be excluded too.
    547         if ( true == $r['hierarchical'] ) {
     548        if ( true == $args['hierarchical'] ) {
    548549                $exclude_tree = array();
    549550
    550                 if ( $r['exclude_tree'] ) {
    551                         $exclude_tree = array_merge( $exclude_tree, wp_parse_id_list( $r['exclude_tree'] ) );
     551                if ( $args['exclude_tree'] ) {
     552                        $exclude_tree = array_merge( $exclude_tree, wp_parse_id_list( $args['exclude_tree'] ) );
    552553                }
    553554
    554                 if ( $r['exclude'] ) {
    555                         $exclude_tree = array_merge( $exclude_tree, wp_parse_id_list( $r['exclude'] ) );
     555                if ( $args['exclude'] ) {
     556                        $exclude_tree = array_merge( $exclude_tree, wp_parse_id_list( $args['exclude'] ) );
    556557                }
    557558
    558                 $r['exclude_tree'] = $exclude_tree;
    559                 $r['exclude']      = '';
     559                $args['exclude_tree'] = $exclude_tree;
     560                $args['exclude']      = '';
    560561        }
    561562
    562         if ( ! isset( $r['class'] ) ) {
    563                 $r['class'] = ( 'category' == $r['taxonomy'] ) ? 'categories' : $r['taxonomy'];
     563        if ( ! isset( $args['class'] ) ) {
     564                $args['class'] = ( 'category' == $args['taxonomy'] ) ? 'categories' : $args['taxonomy'];
    564565        }
    565566
    566         if ( ! taxonomy_exists( $r['taxonomy'] ) ) {
     567        if ( ! taxonomy_exists( $args['taxonomy'] ) ) {
    567568                return false;
    568569        }
    569570
    570         $show_option_all  = $r['show_option_all'];
    571         $show_option_none = $r['show_option_none'];
     571        $show_option_all  = $args['show_option_all'];
     572        $show_option_none = $args['show_option_none'];
    572573
    573574        $categories = get_categories( $r );
    574575
    575576        $output = '';
    576         if ( $r['title_li'] && 'list' == $r['style'] && ( ! empty( $categories ) || ! $r['hide_title_if_empty'] ) ) {
    577                 $output = '<li class="' . esc_attr( $r['class'] ) . '">' . $r['title_li'] . '<ul>';
     577        if ( $args['title_li'] && 'list' == $args['style'] && ( ! empty( $categories ) || ! $args['hide_title_if_empty'] ) ) {
     578                $output = '<li class="' . esc_attr( $args['class'] ) . '">' . $args['title_li'] . '<ul>';
    578579        }
    579580        if ( empty( $categories ) ) {
    580581                if ( ! empty( $show_option_none ) ) {
    581                         if ( 'list' == $r['style'] ) {
     582                        if ( 'list' == $args['style'] ) {
    582583                                $output .= '<li class="cat-item-none">' . $show_option_none . '</li>';
    583584                        } else {
    584585                                $output .= $show_option_none;
     
    590591                        $posts_page = '';
    591592
    592593                        // For taxonomies that belong only to custom post types, point to a valid archive.
    593                         $taxonomy_object = get_taxonomy( $r['taxonomy'] );
     594                        $taxonomy_object = get_taxonomy( $args['taxonomy'] );
    594595                        if ( ! in_array( 'post', $taxonomy_object->object_type ) && ! in_array( 'page', $taxonomy_object->object_type ) ) {
    595596                                foreach ( $taxonomy_object->object_type as $object_type ) {
    596597                                        $_object_type = get_post_type_object( $object_type );
     
    613614                        }
    614615
    615616                        $posts_page = esc_url( $posts_page );
    616                         if ( 'list' == $r['style'] ) {
     617                        if ( 'list' == $args['style'] ) {
    617618                                $output .= "<li class='cat-item-all'><a href='$posts_page'>$show_option_all</a></li>";
    618619                        } else {
    619620                                $output .= "<a href='$posts_page'>$show_option_all</a>";
     
    620621                        }
    621622                }
    622623
    623                 if ( empty( $r['current_category'] ) && ( is_category() || is_tax() || is_tag() ) ) {
     624                if ( empty( $args['current_category'] ) && ( is_category() || is_tax() || is_tag() ) ) {
    624625                        $current_term_object = get_queried_object();
    625                         if ( $current_term_object && $r['taxonomy'] === $current_term_object->taxonomy ) {
    626                                 $r['current_category'] = get_queried_object_id();
     626                        if ( $current_term_object && $args['taxonomy'] === $current_term_object->taxonomy ) {
     627                                $args['current_category'] = get_queried_object_id();
    627628                        }
    628629                }
    629630
    630                 if ( $r['hierarchical'] ) {
    631                         $depth = $r['depth'];
     631                if ( $args['hierarchical'] ) {
     632                        $depth = $args['depth'];
    632633                } else {
    633634                        $depth = -1; // Flat.
    634635                }
     
    635636                $output .= walk_category_tree( $categories, $depth, $r );
    636637        }
    637638
    638         if ( $r['title_li'] && 'list' == $r['style'] && ( ! empty( $categories ) || ! $r['hide_title_if_empty'] ) ) {
     639        if ( $args['title_li'] && 'list' == $args['style'] && ( ! empty( $categories ) || ! $args['hide_title_if_empty'] ) ) {
    639640                $output .= '</ul></li>';
    640641        }
    641642
     
    649650         */
    650651        $html = apply_filters( 'wp_list_categories', $output, $args );
    651652
    652         if ( $r['echo'] ) {
     653        if ( $args['echo'] ) {
    653654                echo $html;
    654655        } else {
    655656                return $html;