WordPress.org

Make WordPress Core

Ticket #40666: 40666.diff

File 40666.diff, 2.1 KB (added by pbiron, 5 years ago)
  • wp-includes/class-walker-category.php

    diff --git a/wp-includes/class-walker-category.php b/wp-includes/class-walker-category.php
    index 01b7264..a94df44 100644
    a b class Walker_Category extends Walker { 
    108108                        return;
    109109                }
    110110
    111                 $link = '<a href="' . esc_url( get_term_link( $category ) ) . '" ';
     111                $atts = array();
     112                $atts['href'] = get_term_link( $category );
     113
    112114                if ( $args['use_desc_for_title'] && ! empty( $category->description ) ) {
    113115                        /**
    114116                         * Filters the category description for display.
    class Walker_Category extends Walker { 
    118120                         * @param string $description Category description.
    119121                         * @param object $category    Category object.
    120122                         */
    121                         $link .= 'title="' . esc_attr( strip_tags( apply_filters( 'category_description', $category->description, $category ) ) ) . '"';
     123                        $atts['title'] = strip_tags( apply_filters( 'category_description', $category->description, $category ) );
     124                }
     125
     126                /**
     127                 * Filters the HTML attributes applied to a category menu item's anchor element.
     128                 *
     129                 * @since 4.8.x
     130                 *
     131                 * @param array $atts {
     132                 *     The HTML attributes applied to the menu item's `<a>` element, empty strings are ignored.
     133                 *
     134                 *     @type string $href The href attribute.
     135                 *     @type string $title The title attribute.
     136                 * }
     137                 * @param WP_Term $category         Term data object.
     138                 * @param int     $depth            Depth of category, used for padding.
     139                 * @param array   $args             An array of arguments.
     140                 * @param int     $current_category ID of the current category.
     141                 */
     142                $atts = apply_filters( 'category_menu_link_attributes', $atts, $category, $depth, $args, $id );
     143
     144                $attributes = '';
     145                foreach ( $atts as $attr => $value ) {
     146                        if ( ! empty( $value ) ) {
     147                                $value = esc_attr( $value );
     148                                $attributes .= ' ' . $attr . '="' . $value . '"';
     149                        }
    122150                }
    123151
    124                 $link .= '>';
    125                 $link .= $cat_name . '</a>';
     152                $link = sprintf(
     153                        '<a%s>%s</a>',
     154                        $attributes,
     155                        $cat_name
     156                );
    126157
    127158                if ( ! empty( $args['feed_image'] ) || ! empty( $args['feed'] ) ) {
    128159                        $link .= ' ';