'afwp_accordion_nav_menu', 'description' => esc_html__( 'Add a custom accordion menu to your sidebar.', 'accordion-for-wp' ), 'customize_selective_refresh' => true, ); $control_ops = array( 'width' => 350, 'height' => 350 ); parent::__construct( 'afwp_accordion_nav_menu', esc_html__( 'Accordion Menu', 'accordion-for-wp' ), $widget_ops, $control_ops ); } /** * Outputs the content for the current Custom Menu widget instance. * * @since 3.0.0 * @access public * * @param array $args Display arguments including 'before_title', 'after_title', * 'before_widget', and 'after_widget'. * @param array $instance Settings for the current Custom Menu widget instance. */ public function widget( $args, $instance ) { // Get menu $nav_menu = ! empty( $instance['nav_menu'] ) ? wp_get_nav_menu_object( $instance['nav_menu'] ) : false; $templates = empty( $instance['templates'] ) ? 'default' : esc_attr($instance['templates']); $style = empty( $instance['style'] ) ? 'vertical' : esc_attr($instance['style']); $dropdown_icon = isset($instance['dropdown_icon']) ? esc_attr( $instance['dropdown_icon'] ) : 'fa-toggle-off'; $active_dp_icon = isset($instance['active_dp_icon']) ? esc_attr( $instance['active_dp_icon'] ) : 'fa-toggle-on'; $title_color = isset($instance['title_color']) ? sanitize_hex_color( $instance['title_color'] ) : ''; $title_background = isset($instance['title_background']) ? sanitize_hex_color( $instance['title_background'] ) : ''; $content_color = isset($instance['content_color']) ? sanitize_hex_color( $instance['content_color'] ) : ''; $content_background = isset($instance['content_background']) ? sanitize_hex_color( $instance['content_background'] ) : ''; if ( ! $nav_menu ) { return; } /** This filter is documented in wp-includes/widgets/class-wp-widget-pages.php */ $instance['title'] = apply_filters( 'widget_title', empty( $instance['title'] ) ? '' : $instance['title'], $instance, $this->id_base ); echo $args['before_widget']; if ( ! empty( $instance['title'] ) ) { echo $args['before_title'] . $instance['title'] . $args['after_title']; } $nav_menu_args = array( 'fallback_cb' => '', 'menu' => $nav_menu ); /** * Filters the arguments for the Custom Menu widget. * * @since 4.2.0 * @since 4.4.0 Added the `$instance` parameter. * * @param array $nav_menu_args { * An array of arguments passed to wp_nav_menu() to retrieve a custom 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. */ $menu_args = apply_filters( 'widget_nav_menu_args', $nav_menu_args, $nav_menu, $args, $instance ); $afwp_navigation_id = 'afwp_accordion_nav_menu'.$this->number; echo '
'; echo ''; ?> array( 'id' => 'afwp_accordion_nav_menu_general'.esc_attr($this->number), 'label' => esc_html__('General', 'accordion-for-wp'), ), 'layout' => array( 'id' => 'afwp_accordion_nav_menu_layout'.esc_attr($this->number), 'label' => esc_html__('Layout', 'accordion-for-wp'), ), 'design' => array( 'id' => 'afwp_accordion_nav_menu_design'.esc_attr($this->number), 'label' => esc_html__('Design', 'accordion-for-wp'), ), ); // If no menus exists, direct the user to go and create some. ?>esc_html__( 'Vertical', 'accordion-for-wp' )); ?>