'menu', 'description' => _a('Display a custom menu')); $this->WP_Widget('atom-menu', _a('Custom Menu'), $widget_ops); } function widget($args, $instance){ extract($args); $instance = wp_parse_args($instance); // Get menu $nav_menu = wp_get_nav_menu_object($instance['nav_menu']); if (!$nav_menu) return atom_add_debug_message("No menu selected in {$args['widget_id']} ({$args['widget_name']}). Widget marked as inactive"); $title = apply_filters('widget_title', $instance['title'], $instance, $this->id_base); echo $before_widget; if (!empty($instance['title'])) echo $before_title.$title.$after_title; wp_nav_menu(array( 'menu' => $nav_menu, // 'container_class' => 'menu', 'after' => ($instance['behaviour'] != 'expanded') ? "" : '', 'menu_class' => "menu {$instance['behaviour']} event-{$instance['event']}", 'fallback_cb' => '')); echo $after_widget; } function update($new_instance, $old_instance){ $instance['title'] = esc_attr($new_instance['title']); $instance['nav_menu'] = (int)$new_instance['nav_menu']; $instance['behaviour'] = esc_attr($new_instance['behaviour']); $instance['event'] = esc_attr($new_instance['event']); return wp_parse_args($instance, $this->defaults()); } function defaults(){ // default settings return apply_filters('atom_widget_menu_defaults', array( 'title' => '', 'nav_menu' => '', 'behaviour' => 'accordion', 'event' => 'click', ), $this); } function form($instance){ // defaults $instance = wp_parse_args($instance, $this->defaults()); // Get menus $menus = get_terms('nav_menu', array('hide_empty' => false)); // If no menus exists, direct the user to go and create some. if(!$menus): ?>
#'); ?>