WP_Nav_Menu_Widget::widget( array $args, array $instance )
Outputs the content for the current Navigation Menu widget instance.
Parameters
- $args
-
(Required) Display arguments including 'before_title', 'after_title', 'before_widget', and 'after_widget'.
- $instance
-
(Required) Settings for the current Navigation Menu widget instance.
Source
File: wp-includes/widgets/class-wp-nav-menu-widget.php
public function widget( $args, $instance ) {
// Get menu
$nav_menu = ! empty( $instance['nav_menu'] ) ? wp_get_nav_menu_object( $instance['nav_menu'] ) : false;
if ( ! $nav_menu ) {
return;
}
$title = ! empty( $instance['title'] ) ? $instance['title'] : '';
/** This filter is documented in wp-includes/widgets/class-wp-widget-pages.php */
$title = apply_filters( 'widget_title', $title, $instance, $this->id_base );
echo $args['before_widget'];
if ( $title ) {
echo $args['before_title'] . $title . $args['after_title'];
}
$nav_menu_args = array(
'fallback_cb' => '',
'menu' => $nav_menu
);
/**
* Filters the arguments for the Navigation Menu widget.
*
* @since WP-4.2.0
* @since WP-4.4.0 Added the `$instance` parameter.
*
* @param array $nav_menu_args {
* An array of arguments passed to wp_nav_menu() to retrieve a navigation menu.
*
* @type callable|bool $fallback_cb Callback to fire if the menu doesn't exist. Default empty.
* @type mixed $menu Menu ID, slug, or name.
* }
* @param WP_Term $nav_menu Nav menu object for the current menu.
* @param array $args Display arguments for the current widget.
* @param array $instance Array of settings for the current widget.
*/
wp_nav_menu( apply_filters( 'widget_nav_menu_args', $nav_menu_args, $nav_menu, $args, $instance ) );
echo $args['after_widget'];
}
Changelog
Version | Description |
---|---|
WP-3.0.0 | Introduced. |