The navigation_widgets_format filter allows you to modify the HTML format of widgets with navigation links in your WordPress theme.
Usage
add_filter( 'navigation_widgets_format', 'your_custom_function' ); function your_custom_function( $format ) { // Your custom code here return $format; }
Parameters
$format (string)
– The type of markup to use in widgets with navigation links. Accepts ‘html5’, ‘xhtml’.
Examples
Change Navigation Widget Format to XHTML
add_filter( 'navigation_widgets_format', 'change_navigation_widgets_to_xhtml' ); function change_navigation_widgets_to_xhtml( $format ) { $format = 'xhtml'; return $format; }
This code changes the format of navigation widgets to XHTML.
Force HTML5 Format for Navigation Widgets
add_filter( 'navigation_widgets_format', 'force_html5_navigation_widgets' ); function force_html5_navigation_widgets( $format ) { $format = 'html5'; return $format; }
This code forces the format of navigation widgets to always use HTML5.
Conditionally Change Format Based on Post Type
add_filter( 'navigation_widgets_format', 'change_format_based_on_post_type' ); function change_format_based_on_post_type( $format ) { if ( is_singular( 'custom_post_type' ) ) { $format = 'xhtml'; } else { $format = 'html5'; } return $format; }
This code changes the navigation widgets format to XHTML if the current post is a custom post type, otherwise, it uses HTML5.
Change Format Based on User Role
add_filter( 'navigation_widgets_format', 'change_format_based_on_user_role' ); function change_format_based_on_user_role( $format ) { if ( current_user_can( 'editor' ) ) { $format = 'xhtml'; } else { $format = 'html5'; } return $format; }
This code changes the navigation widgets format to XHTML for users with the ‘editor’ role, and HTML5 for other users.
Change Format Based on Widget Area
add_filter( 'navigation_widgets_format', 'change_format_based_on_widget_area', 10, 2 ); function change_format_based_on_widget_area( $format, $args ) { if ( 'footer' == $args['id'] ) { $format = 'xhtml'; } else { $format = 'html5'; } return $format; }
This code changes the navigation widgets format to XHTML if the widget area is the footer, otherwise, it uses HTML5.