From 30921dd3963bd42d922a08ae218123bcaf8e95f4 Mon Sep 17 00:00:00 2001 From: Scott Taylor Date: Fri, 18 Sep 2015 06:06:17 +0000 Subject: [PATCH] Add an argument to `wp_page_menu()`, `'menu_tag'`, which defaults to `div` but can be overridden to allow HTML5 tags like `nav`. Props paulwilde, stebbiv, wonderboymusic. Fixes #10968. git-svn-id: https://develop.svn.wordpress.org/trunk@34280 602fd350-edb4-49c9-b593-d223f7449a82 --- src/wp-includes/post-template.php | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/wp-includes/post-template.php b/src/wp-includes/post-template.php index b296464836..d4797cf978 100644 --- a/src/wp-includes/post-template.php +++ b/src/wp-includes/post-template.php @@ -1195,6 +1195,7 @@ function wp_list_pages( $args = '' ) { * @type string $sort_column How to short the list of pages. Accepts post column names. * Default 'menu_order, post_title'. * @type string $menu_class Class to use for the div ID containing the page list. Default 'menu'. + * @type string $menu_tag Element to use for the element containing the page list. Default 'div'. * @type bool $echo Whether to echo the list or return it. Accepts true (echo) or false (return). * Default true. * @type int|bool|string $show_home Whether to display the link to the home page. Can just enter the text @@ -1211,6 +1212,7 @@ function wp_page_menu( $args = array() ) { $defaults = array( 'sort_column' => 'menu_order, post_title', 'menu_class' => 'menu', + 'menu_tag' => 'div', 'echo' => true, 'show_home' => false, 'link_before' => '', @@ -1264,7 +1266,8 @@ function wp_page_menu( $args = array() ) { if ( $menu ) { $menu = $args['before'] . $menu . $args['after']; } - $menu = '
' . $menu . "
\n"; + $tag = sanitize_text_field( $args['menu_tag'] ); + $menu = "<{$args['menu_tag']} class=\"" . esc_attr( $args['menu_class'] ) . '">' . $menu . "\n"; /** * Filter the HTML output of a page-based menu.