* * @wordpress-plugin * Plugin Name: Canuck Author Widget * Plugin URI: http://kevinsspace.ca/canuckdemo/ * Description: A widget for the Canuck Theme that displays a flex slider. * Version: 1.2.8 * 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_slider_register_widget' ); /** * Register our widget. */ function canuck_slider_register_widget() { register_widget( 'Canuck_Slider_Widget' ); } /** * Widget Class */ class Canuck_Slider_Widget extends WP_Widget { /** * Sets up the widgets name etc. */ public function __construct() { $widget_ops = array( 'classname' => 'canuck_slider_widget_class', 'description' => esc_html__( 'Display slider of featured images', 'canuck' ), ); parent::__construct( 'canuck_slider_widget', esc_html__( 'Canuck Slider Widget', 'canuck' ), $widget_ops ); } /** * Outputs the options form on admin * * @param array $instance The widget options. */ public function form( $instance ) { $canuck_slider_defaults = array( 'canuck_slider_title' => esc_html__( 'Canuck Flex Slider', 'canuck' ), 'canuck_slider_type' => 'button nav', // phpcs:ignore 'canuck_slider_category' => esc_html__( 'feature 1', 'canuck' ), 'canuck_slider_animation' => 'fade', 'canuck_slider_pause' => '6000', 'canuck_slider_transition' => '500', 'canuck_slider_auto' => true, 'canuck_include_post_titles' => false, ); $instance = wp_parse_args( (array) $instance, $canuck_slider_defaults ); $title = $instance['canuck_slider_title']; $slider_type = $instance['canuck_slider_type']; $slider_category = $instance['canuck_slider_category']; $slider_animation = $instance['canuck_slider_animation']; $slider_pause = $instance['canuck_slider_pause']; $slider_transition = $instance['canuck_slider_transition']; $slider_auto = isset( $instance['canuck_slider_auto'] ) ? $instance['canuck_slider_auto'] : false; $include_post_titles = isset( $instance['canuck_include_post_titles'] ) ? $instance['canuck_include_post_titles'] : false; ?>
/>
/>
id_base ); isset( $instance['canuck_slider_type'] ) ? $slider_type = $instance['canuck_slider_type'] : $slider_type = 'button_nav';// phpcs:ignore isset( $instance['canuck_slider_category'] ) ? $slider_category = $instance['canuck_slider_category'] : $slider_category = esc_html__( 'feature 1', 'canuck' );// phpcs:ignore isset( $instance['canuck_slider_animation'] ) ? $slider_animation = $instance['canuck_slider_animation'] : $slider_animation = 'fade';// phpcs:ignore isset( $instance['canuck_slider_pause'] ) ? $slider_pause = $instance['canuck_slider_pause'] : $slider_pause = '6000';// phpcs:ignore isset( $instance['canuck_slider_transition'] ) ? $slider_transition = $instance['canuck_slider_transition'] : $slider_transition = '500';// phpcs:ignore $include_post_titles = isset( $instance['canuck_include_post_titles'] ) ? $instance['canuck_include_post_titles'] : false; $slider_auto = isset( $instance['canuck_slider_auto'] ) ? $instance['canuck_slider_auto'] : true; echo $args['before_widget']; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped if ( ! empty( $title ) ) { echo $args['before_title'] . $title . $args['after_title']; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped } if ( 'button_nav' === $slider_type ) { $pagination = 1; canuck_widget_slider_no_thumbs( $slider_category, $pagination, $slider_animation, $slider_pause, $slider_transition, $include_post_titles, $slider_auto ); } else { $pagination = 0; canuck_widget_slider_no_thumbs( $slider_category, $pagination, $slider_animation, $slider_pause, $slider_transition, $include_post_titles, $slider_auto ); } echo $args['after_widget']; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped } } /** * Flex Slider Directional Nav Only * * @param string $slider_category is the category to get feature images from. * @param boolean $pagination is whether or not to use button pagination. * @param string $slider_animation is the slider animation slide or fade. * @param string $slider_pause time in miliseconds before slide change starts. * @param string $slider_transition is the time in miliseconds for the slide to change. * @param boolean $include_post_titles will include post title as a caption if checked. * @param boolean $slider_auto will auto start the slider if checked. */ function canuck_widget_slider_no_thumbs( $slider_category, $pagination, $slider_animation, $slider_pause, $slider_transition, $include_post_titles, $slider_auto ) { global $canuck_feature_category, $post; $include_pinterest_pinit = get_theme_mod( 'canuck_include_pinit', false ); $add_nopin = ( true === $include_pinterest_pinit ) ? '' : 'data-pin-no-hover="true" '; $category_id = get_cat_ID( $slider_category ); $args = array( 'category' => $category_id, 'numberposts' => 20, ); $custom_posts = get_posts( $args ); $canuck_feature_pic_count = 0; if ( 0 !== $category_id && $custom_posts ) { ?>