'widget_nav_menu adela_widget_nav_menu', 'description' => __( 'Add a navigation menu to your sidebar.','adela' ), 'customize_selective_refresh' => true, ); parent::__construct( 'adela_widget_nav_menu', esc_html__( 'Adela: Navigation menu', 'adela' ), $widget_ops ); } 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'] : ''; $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 ); wp_nav_menu( apply_filters( 'adela_widget_nav_menu_args', $nav_menu_args, $nav_menu, $args, $instance ) ); echo $args['after_widget']; } public function update( $new_instance, $old_instance ) { $instance = array(); if ( ! empty( $new_instance['title'] ) ) { $instance['title'] = sanitize_text_field( $new_instance['title'] ); } if ( ! empty( $new_instance['nav_menu'] ) ) { $instance['nav_menu'] = $new_instance['nav_menu']; } return $instance; } public function form( $instance ) { global $wp_customize; $title = isset( $instance['title'] ) ? $instance['title'] : ''; $nav_menu = isset( $instance['nav_menu'] ) ? $instance['nav_menu'] : ''; // Get menus $menus = wp_get_nav_menus(); // If no menus exists, direct the user to go and create some. ?>