diff -r 3d4e9c994f10 -r a86126ab1dd4 wp/wp-includes/widgets/class-wp-widget-pages.php --- a/wp/wp-includes/widgets/class-wp-widget-pages.php Tue Oct 22 16:11:46 2019 +0200 +++ b/wp/wp-includes/widgets/class-wp-widget-pages.php Tue Dec 15 13:49:49 2020 +0100 @@ -40,7 +40,8 @@ * @param array $instance Settings for the current Pages widget instance. */ public function widget( $args, $instance ) { - $title = ! empty( $instance['title'] ) ? $instance['title'] : __( 'Pages' ); + $default_title = __( 'Pages' ); + $title = ! empty( $instance['title'] ) ? $instance['title'] : $default_title; /** * Filters the widget title. @@ -56,22 +57,22 @@ $sortby = empty( $instance['sortby'] ) ? 'menu_order' : $instance['sortby']; $exclude = empty( $instance['exclude'] ) ? '' : $instance['exclude']; - if ( $sortby == 'menu_order' ) { + if ( 'menu_order' === $sortby ) { $sortby = 'menu_order, post_title'; } - /** - * Filters the arguments for the Pages widget. - * - * @since 2.8.0 - * @since 4.9.0 Added the `$instance` parameter. - * - * @see wp_list_pages() - * - * @param array $args An array of arguments to retrieve the pages list. - * @param array $instance Array of settings for the current widget. - */ $out = wp_list_pages( + /** + * Filters the arguments for the Pages widget. + * + * @since 2.8.0 + * @since 4.9.0 Added the `$instance` parameter. + * + * @see wp_list_pages() + * + * @param array $args An array of arguments to retrieve the pages list. + * @param array $instance Array of settings for the current widget. + */ apply_filters( 'widget_pages_args', array( @@ -89,11 +90,29 @@ if ( $title ) { echo $args['before_title'] . $title . $args['after_title']; } + + $format = current_theme_supports( 'html5', 'navigation-widgets' ) ? 'html5' : 'xhtml'; + + /** This filter is documented in wp-includes/widgets/class-wp-nav-menu-widget.php */ + $format = apply_filters( 'navigation_widgets_format', $format ); + + if ( 'html5' === $format ) { + // The title may be filtered: Strip out HTML and make sure the aria-label is never empty. + $title = trim( strip_tags( $title ) ); + $aria_label = $title ? $title : $default_title; + echo '
++