'widget_categories', 'description' => __( 'A list or dropdown of categories.', 'benjamin' ), 'customize_selective_refresh' => true, ); parent::__construct( 'categories', __( 'Categories','benjamin' ), $widget_ops ); } private function menuStyleArgs($style = 'side_nav'){ if($style == 'side_nav'): $class = 'usa-sidenav-list'; elseif($style == 'nav_list'): $class = 'usa-unstyled-list'; else: $class = ''; endif; return $class; } public function dropdown($c, $cat_args, $first_dropdown) { $dropdown_id = "{$this->id_base}-dropdown-{$this->number}"; $first_dropdown = false; echo ''; $cat_args['show_option_none'] = __( 'Select Category', 'benjamin' ); $cat_args['id'] = $dropdown_id; /** * Filters the arguments for the Categories widget drop-down. * * @since 2.8.0 * * @see wp_dropdown_categories() * * @param array $cat_args An array of Categories widget drop-down arguments. */ wp_dropdown_categories( apply_filters( 'widget_categories_dropdown_args', $cat_args ) ); ?> menuStyleArgs($style); $class = $style_args ? 'class="'.$style_args.'"' : ''; ?> id_base ); $c = ! empty( $instance['count'] ) ? '1' : '0'; $h = ! empty( $instance['hierarchical'] ) ? '1' : '0'; $d = ! empty( $instance['dropdown'] ) ? '1' : '0'; $style = ! empty( $instance['menu_style'] ) ? $instance['menu_style'] : 'side_nav'; echo $args['before_widget']; if ( $title ) { echo $args['before_title'] . $title . $args['after_title']; } $cat_args = array( 'orderby' => 'name', 'show_count' => $c, 'hierarchical' => $h ); if ( $style == 'dropdown' ) { $this->dropdown($c, $cat_args, $first_dropdown); } else { $this->menu($c, $style, $cat_args); } echo $args['after_widget']; } /** * Handles updating settings for the current Categories widget instance. * * @since 2.8.0 * @access public * * @param array $new_instance New settings for this instance as input by the user via * WP_Widget::form(). * @param array $old_instance Old settings for this instance. * @return array Updated settings to save. */ public function update( $new_instance, $old_instance ) { $instance = $old_instance; $instance['title'] = sanitize_text_field( $new_instance['title'] ); $instance['count'] = !empty($new_instance['count']) ? 1 : 0; $instance['hierarchical'] = !empty($new_instance['hierarchical']) ? 1 : 0; $instance['dropdown'] = !empty($new_instance['dropdown']) ? 1 : 0; if ( ! empty( $new_instance['menu_style'] ) ) { $instance['menu_style'] = sanitize_text_field($new_instance['menu_style']); } return $instance; } /** * Outputs the settings form for the Categories widget. * * @since 2.8.0 * @access public * * @param array $instance Current settings. */ public function form( $instance ) { //Defaults $instance = wp_parse_args( (array) $instance, array( 'title' => '') ); $title = sanitize_text_field( $instance['title'] ); $count = isset($instance['count']) ? (bool) $instance['count'] :false; $hierarchical = isset( $instance['hierarchical'] ) ? (bool) $instance['hierarchical'] : false; $dropdown = isset( $instance['dropdown'] ) ? (bool) $instance['dropdown'] : false; $saved_style = isset( $instance['menu_style'] ) ? $instance['menu_style'] : ''; ?>

/>