WordPress.org

Make WordPress Core

Ticket #47094: 47094.2.diff

File 47094.2.diff, 2.4 KB (added by audrasjb, 2 months ago)

add aria-current='page' to wp_list_categories()

  • src/wp-includes/class-walker-category.php

    diff --git a/src/wp-includes/class-walker-category.php b/src/wp-includes/class-walker-category.php
    index c881e68..bfea72b 100644
    a b class Walker_Category extends Walker { 
    111111                $atts         = array();
    112112                $atts['href'] = get_term_link( $category );
    113113
     114                // Add aria-curent attribute to the current category.
     115                $_current_terms = get_terms(
     116                        $category->taxonomy,
     117                        array(
     118                                'include'    => $args['current_category'],
     119                                'hide_empty' => false,
     120                        )
     121                );
     122                $aria_current = '';
     123                foreach ( $_current_terms as $_current_term ) {
     124                        if ( $category->term_id == $_current_term->term_id ) {
     125                                $aria_current = ' aria-current="page"';
     126                        }
     127                }
     128
    114129                if ( $args['use_desc_for_title'] && ! empty( $category->description ) ) {
    115130                        /**
    116131                         * Filters the category description for display.
    class Walker_Category extends Walker { 
    145160                foreach ( $atts as $attr => $value ) {
    146161                        if ( ! empty( $value ) ) {
    147162                                $value       = ( 'href' === $attr ) ? esc_url( $value ) : esc_attr( $value );
    148                                 $attributes .= ' ' . $attr . '="' . $value . '"';
     163                                $attributes .= ' ' . $attr . '="' . $value . '"' . $aria_current;
    149164                        }
    150165                }
    151166
  • src/wp-includes/widgets/class-wp-widget-recent-posts.php

    diff --git a/src/wp-includes/widgets/class-wp-widget-recent-posts.php b/src/wp-includes/widgets/class-wp-widget-recent-posts.php
    index c137849..d9403bf 100644
    a b class WP_Widget_Recent_Posts extends WP_Widget { 
    9393                <ul>
    9494                        <?php foreach ( $r->posts as $recent_post ) : ?>
    9595                                <?php
    96                                 $post_title = get_the_title( $recent_post->ID );
    97                                 $title      = ( ! empty( $post_title ) ) ? $post_title : __( '(no title)' );
     96                                $post_title   = get_the_title( $recent_post->ID );
     97                                $title        = ( ! empty( $post_title ) ) ? $post_title : __( '(no title)' );
     98                                $aria_current = ( $recent_post->ID === get_the_ID() ) ? ' aria-current="page"' : '';
    9899                                ?>
    99100                                <li>
    100                                         <a href="<?php the_permalink( $recent_post->ID ); ?>"><?php echo $title; ?></a>
     101                                        <a href="<?php the_permalink( $recent_post->ID ); ?>"<?php echo $aria_current; ?>><?php echo $title; ?></a>
    101102                                        <?php if ( $show_date ) : ?>
    102103                                                <span class="post-date"><?php echo get_the_date( '', $recent_post->ID ); ?></span>
    103104                                        <?php endif; ?>