* * @wordpress plugin * Plugin Name: Canuck Category Widget * Plugin URI: http://kevinsspace.ca/canuckdemo/ * Description: A widget for the Canuck Theme that allows the user to remove categories from the list. * Version: 1.0.0 * Author: Kevin Archibald * Author URI: http://kevinsspace.ca/ * License: GPLv2 or later * License URI: http://www.gnu.org/licenses/gpl-2.0.txt */ /** * Use widgets_init action hook to execute custom function. */ add_action( 'widgets_init', 'canuck_register_category_widget' ); /** * Register our widget. */ function canuck_register_category_widget() { register_widget( 'Canuck_Category_Widget' ); } /** * Categories widget class */ class Canuck_Category_Widget extends WP_Widget { /** * Sets up the widgets name etc. */ public function __construct() { $widget_ops = array( 'classname' => 'canuck_category_widget_class', 'description' => esc_html__( 'Display selected categories', 'canuck' ), ); parent::__construct( 'canuck_category_widget', esc_html__( 'Canuck Category Widget', 'canuck' ), $widget_ops ); } /** * Outputs the options form on admin. * * @param array $instance The widget options. */ public function form( $instance ) { $canuck_category_defaults = array( 'canuck_title' => esc_html__( 'Categories', 'canuck' ), 'canuck_count' => false, 'canuck_hierarchical' => false, 'canuck_dropdown' => false, ); $instance = wp_parse_args( (array) $instance, $canuck_category_defaults ); $title = $instance['canuck_title']; $count = $instance['canuck_count']; $hierarchical = $instance['canuck_hierarchical']; $dropdown = $instance['canuck_dropdown']; // Validate data. if ( true !== $count ) { $count = false; } if ( true !== $hierarchical ) { $hierarchical = false; } if ( true !== $dropdown ) { $dropdown = false; } ?>

/>
/>
/>

id_base ); $c = ! empty( $instance['canuck_count'] ) ? true : false; $h = ! empty( $instance['canuck_hierarchical'] ) ? true : false; $d = ! empty( $instance['canuck_dropdown'] ) ? true : false; // Get exclude ids. $exclude_ids = canuck_exclude_category_validation(); $id_picks = array(); $id_picks = explode( ',', $exclude_ids ); $filtered_list = ''; $counter = 0; foreach ( $id_picks as $pick ) { if ( 1 < intval( $id_picks[ $counter ] ) ) { $filtered_list .= intval( $id_picks[ $counter ] ) . ','; } $counter++; } $exclude_ids = trim( $filtered_list , ',' ); $x = $exclude_ids; echo wp_kses_post( $args['before_widget'] ); if ( '' !== $title ) { echo wp_kses_post( $args['before_title'] ) . wp_kses_post( $title ) . wp_kses_post( $args['after_title'] ); } $cat_args = array( 'orderby' => 'name', 'show_count' => $c, 'hierarchical' => $h, 'exclude' => $x, ); if ( true === $d ) { $cat_args['option_none_value'] = esc_html__( 'Select Category' , 'canuck' ); /** * Filter 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 ) ); ?>