Make WordPress Core

Ticket #40666: 40666.3.diff

File 40666.3.diff, 2.4 KB (added by afercia, 7 years ago)
  • src/wp-includes/class-walker-category.php

     
    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.
     
    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 ) );
    122124                }
    123125
    124                 $link .= '>';
    125                 $link .= $cat_name . '</a>';
     126                /**
     127                 * Filters the HTML attributes applied to a category menu item's anchor element.
     128                 *
     129                 * @since 5.2.0
     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 );
    126143
     144                $attributes = '';
     145                foreach ( $atts as $attr => $value ) {
     146                        if ( ! empty( $value ) ) {
     147                                $value       = esc_attr( $value );
     148                                $attributes .= ' ' . $attr . '="' . $value . '"';
     149                        }
     150                }
     151
     152                $link = sprintf(
     153                        '<a%s>%s</a>',
     154                        $attributes,
     155                        $cat_name
     156                );
     157
    127158                if ( ! empty( $args['feed_image'] ) || ! empty( $args['feed'] ) ) {
    128159                        $link .= ' ';
    129160
     
    134165                        $link .= '<a href="' . esc_url( get_term_feed_link( $category->term_id, $category->taxonomy, $args['feed_type'] ) ) . '"';
    135166
    136167                        if ( empty( $args['feed'] ) ) {
     168                                /* translators: %s: category name */
    137169                                $alt = ' alt="' . sprintf( __( 'Feed for all posts filed under %s' ), $cat_name ) . '"';
    138170                        } else {
    139171                                $alt   = ' alt="' . $args['feed'] . '"';