'nature_bliss_widget_social', 'description' => __( 'Displays social icons.', 'nature-bliss' ), 'customize_selective_refresh' => true, ); $fields = array( 'title' => array( 'label' => __( 'Title:', 'nature-bliss' ), 'type' => 'text', 'class' => 'widefat', ), 'subtitle' => array( 'label' => __( 'Subtitle:', 'nature-bliss' ), 'type' => 'text', 'class' => 'widefat', ), ); if ( false === has_nav_menu( 'social' ) ) { $fields['message'] = array( 'label' => __( 'Social menu is not set. Please create menu and assign it to Social Menu.', 'nature-bliss' ), 'type' => 'message', 'class' => 'widefat', ); } parent::__construct( 'nature-bliss-social', __( 'NB: Social', 'nature-bliss' ), $opts, array(), $fields ); } /** * Outputs the content for the current widget instance. * * @since 1.0.0 * * @param array $args Display arguments. * @param array $instance Settings for the current widget instance. */ function widget( $args, $instance ) { $params = $this->get_params( $instance ); echo $args['before_widget']; if ( ! empty( $params['title'] ) ) { echo $args['before_title'] . $params['title'] . $args['after_title']; } if ( ! empty( $params['subtitle'] ) ) { echo '
'; } if ( has_nav_menu( 'social' ) ) { wp_nav_menu( array( 'theme_location' => 'social', 'container' => false, 'depth' => 1, 'link_before' => '', 'link_after' => '', ) ); } echo $args['after_widget']; } } endif; if ( ! class_exists( 'Nature_Bliss_Featured_Page_Widget' ) ) : /** * Featured page widget Class. * * @since 1.0.0 */ class Nature_Bliss_Featured_Page_Widget extends Nature_Bliss_Widget_Base { /** * Sets up a new widget instance. * * @since 1.0.0 */ function __construct() { $opts = array( 'classname' => 'nature_bliss_widget_featured_page', 'description' => __( 'Displays single featured Page or Post.', 'nature-bliss' ), 'customize_selective_refresh' => true, ); $fields = array( 'title' => array( 'label' => __( 'Title:', 'nature-bliss' ), 'type' => 'text', 'class' => 'widefat', ), 'use_page_title' => array( 'label' => __( 'Use Page/Post Title as Widget Title', 'nature-bliss' ), 'type' => 'checkbox', 'default' => true, ), 'subtitle' => array( 'label' => __( 'Subtitle:', 'nature-bliss' ), 'type' => 'text', 'class' => 'widefat', ), 'featured_page' => array( 'label' => __( 'Select Page:', 'nature-bliss' ), 'type' => 'dropdown-pages', 'show_option_none' => __( '— Select —', 'nature-bliss' ), ), 'id_message' => array( 'label' => '' . _x( 'OR', 'Featured Page Widget', 'nature-bliss' ) . '', 'type' => 'message', ), 'featured_post' => array( 'label' => __( 'Post ID:', 'nature-bliss' ), 'placeholder' => __( 'Eg: 1234', 'nature-bliss' ), 'type' => 'text', 'sanitize_callback' => 'nature_bliss_widget_sanitize_post_id', ), 'content_type' => array( 'label' => __( 'Show Content:', 'nature-bliss' ), 'type' => 'select', 'default' => 'full', 'options' => array( 'excerpt' => __( 'Excerpt', 'nature-bliss' ), 'full' => __( 'Full', 'nature-bliss' ), ), ), 'excerpt_length' => array( 'label' => __( 'Excerpt Length:', 'nature-bliss' ), 'description' => __( 'Applies when Excerpt is selected in Content option.', 'nature-bliss' ), 'type' => 'number', 'css' => 'max-width:60px;', 'default' => 100, 'min' => 1, 'max' => 400, ), 'featured_image' => array( 'label' => __( 'Featured Image:', 'nature-bliss' ), 'type' => 'select', 'options' => nature_bliss_get_image_sizes_options(), ), 'featured_image_alignment' => array( 'label' => __( 'Image Alignment:', 'nature-bliss' ), 'type' => 'select', 'default' => 'center', 'options' => nature_bliss_get_image_alignment_options(), ), ); parent::__construct( 'nature-bliss-featured-page', __( 'NB: Featured Page', 'nature-bliss' ), $opts, array(), $fields ); } /** * Outputs the content for the current widget instance. * * @since 1.0.0 * * @param array $args Display arguments. * @param array $instance Settings for the current widget instance. */ function widget( $args, $instance ) { $params = $this->get_params( $instance ); echo $args['before_widget']; $our_id = ''; if ( absint( $params['featured_post'] ) > 0 ) { $our_id = absint( $params['featured_post'] ); } if ( absint( $params['featured_page'] ) > 0 ) { $our_id = absint( $params['featured_page'] ); } if ( absint( $our_id ) > 0 ) { $qargs = array( 'p' => absint( $our_id ), 'post_type' => 'any', 'no_found_rows' => true, ); $the_query = new WP_Query( $qargs ); if ( $the_query->have_posts() ) { while ( $the_query->have_posts() ) { $the_query->the_post(); echo ' '; } wp_reset_postdata(); } } echo $args['after_widget']; } } endif; if ( ! class_exists( 'Nature_Bliss_Latest_News_Widget' ) ) : /** * Latest news widget Class. * * @since 1.0.0 */ class Nature_Bliss_Latest_News_Widget extends Nature_Bliss_Widget_Base { /** * Sets up a new widget instance. * * @since 1.0.0 */ function __construct() { $opts = array( 'classname' => 'nature_bliss_widget_latest_news', 'description' => __( 'Displays latest posts in grid.', 'nature-bliss' ), 'customize_selective_refresh' => true, ); $fields = array( 'title' => array( 'label' => __( 'Title:', 'nature-bliss' ), 'type' => 'text', 'class' => 'widefat', ), 'subtitle' => array( 'label' => __( 'Subtitle:', 'nature-bliss' ), 'type' => 'text', 'class' => 'widefat', ), 'post_category' => array( 'label' => __( 'Select Category:', 'nature-bliss' ), 'type' => 'dropdown-taxonomies', 'show_option_all' => __( 'All Categories', 'nature-bliss' ), ), 'post_number' => array( 'label' => __( 'Number of Posts:', 'nature-bliss' ), 'type' => 'number', 'default' => 3, 'css' => 'max-width:60px;', 'min' => 1, 'max' => 100, ), 'post_column' => array( 'label' => __( 'Number of Columns:', 'nature-bliss' ), 'type' => 'select', 'default' => 3, 'options' => nature_bliss_get_numbers_dropdown_options( 1, 4 ), ), 'featured_image' => array( 'label' => __( 'Featured Image:', 'nature-bliss' ), 'type' => 'select', 'default' => 'nature-bliss-thumb', 'options' => nature_bliss_get_image_sizes_options(), ), 'excerpt_length' => array( 'label' => __( 'Excerpt Length:', 'nature-bliss' ), 'description' => __( 'in words', 'nature-bliss' ), 'type' => 'number', 'css' => 'max-width:60px;', 'default' => 15, 'min' => 1, 'max' => 400, 'adjacent' => true, ), 'more_text' => array( 'label' => __( 'More Text:', 'nature-bliss' ), 'type' => 'text', 'default' => __( 'Know More', 'nature-bliss' ), ), 'disable_date' => array( 'label' => __( 'Disable Date', 'nature-bliss' ), 'type' => 'checkbox', 'default' => false, ), 'disable_excerpt' => array( 'label' => __( 'Disable Excerpt', 'nature-bliss' ), 'type' => 'checkbox', 'default' => false, ), 'disable_more_text' => array( 'label' => __( 'Disable More Text', 'nature-bliss' ), 'type' => 'checkbox', 'default' => false, ), ); parent::__construct( 'nature-bliss-latest-news', __( 'NB: Latest News', 'nature-bliss' ), $opts, array(), $fields ); } /** * Outputs the content for the current widget instance. * * @since 1.0.0 * * @param array $args Display arguments. * @param array $instance Settings for the current widget instance. */ function widget( $args, $instance ) { $params = $this->get_params( $instance ); echo $args['before_widget']; if ( ! empty( $params['title'] ) ) { echo $args['before_title'] . $params['title'] . $args['after_title']; } if ( ! empty( $params['subtitle'] ) ) { echo ' '; } $qargs = array( 'posts_per_page' => esc_attr( $params['post_number'] ), 'no_found_rows' => true, ); if ( absint( $params['post_category'] ) > 0 ) { $qargs['cat'] = absint( $params['post_category'] ); } $all_posts = get_posts( $qargs ); ?> 'nature_bliss_widget_call_to_action', 'description' => __( 'Call To Action Widget.', 'nature-bliss' ), 'customize_selective_refresh' => true, ); $fields = array( 'title' => array( 'label' => __( 'Title:', 'nature-bliss' ), 'type' => 'text', 'class' => 'widefat', ), 'description' => array( 'label' => __( 'Description:', 'nature-bliss' ), 'type' => 'text', 'class' => 'widefat', ), 'primary_button_text' => array( 'label' => __( 'Primary Button Text:', 'nature-bliss' ), 'default' => __( 'Learn more', 'nature-bliss' ), 'type' => 'text', 'class' => 'widefat', ), 'primary_button_url' => array( 'label' => __( 'Primary Button URL:', 'nature-bliss' ), 'type' => 'url', 'class' => 'widefat', ), 'secondary_button_text' => array( 'label' => __( 'Secondary Button Text:', 'nature-bliss' ), 'default' => '', 'type' => 'text', 'class' => 'widefat', ), 'secondary_button_url' => array( 'label' => __( 'Secondary Button URL:', 'nature-bliss' ), 'type' => 'url', 'class' => 'widefat', ), 'background_image' => array( 'label' => __( 'Background Image:', 'nature-bliss' ), 'type' => 'image', 'default' => '', ), 'enable_background_overlay' => array( 'label' => __( 'Enable Background Overlay', 'nature-bliss' ), 'type' => 'checkbox', 'default' => true, ), ); parent::__construct( 'nature-bliss-call-to-action', __( 'NB: Call To Action', 'nature-bliss' ), $opts, array(), $fields ); } /** * Outputs the content for the current widget instance. * * @since 1.0.0 * * @param array $args Display arguments. * @param array $instance Settings for the current widget instance. */ function widget( $args, $instance ) { $params = $this->get_params( $instance ); // Add background image. if ( ! empty( $params['background_image'] ) ) { $background_style = ''; $background_style .= ' style="background-image:url(' . esc_url( $params['background_image'] ) . ');" '; $args['before_widget'] = implode( $background_style . ' ' . 'class="', explode( 'class="', $args['before_widget'], 2 ) ); } // Add overlay class. $overlay_class = ( true === $params['enable_background_overlay'] ) ? 'overlay-enabled' : 'overlay-disabled' ; $args['before_widget'] = implode( 'class="' . $overlay_class . ' ', explode( 'class="', $args['before_widget'], 2 ) ); echo $args['before_widget']; if ( ! empty( $params['title'] ) ) { echo $args['before_title'] . $params['title'] . $args['after_title']; } ?>