![]() Server : LiteSpeed System : Linux premium84.web-hosting.com 4.18.0-553.44.1.lve.el8.x86_64 #1 SMP Thu Mar 13 14:29:12 UTC 2025 x86_64 User : claqxcrl ( 523) PHP Version : 8.1.32 Disable Function : NONE Directory : /home/claqxcrl/matelopsrp.com/wp-content/themes/master-business/inc/ |
<?php /** * Theme widgets. * * @package Master_Business */ // Load widget base. require_once get_template_directory() . '/lib/widget-base/class-widget-base.php'; if ( ! function_exists( 'master_business_load_widgets' ) ) : /** * Load widgets. * * @since 1.0.0 */ function master_business_load_widgets() { // Social widget. register_widget( 'Master_Business_Social_Widget' ); // Featured Page widget. register_widget( 'Master_Business_Featured_Page_Widget' ); // Latest News widget. register_widget( 'Master_Business_Latest_News_Widget' ); // Call To Action widget. register_widget( 'Master_Business_Call_To_Action_Widget' ); // Services widget. register_widget( 'Master_Business_Services_Widget' ); // Recent Posts widget. register_widget( 'Master_Business_Recent_Posts_Widget' ); // Featured News Blocks widget. register_widget( 'Master_Business_News_Blocks_Widget' ); } endif; add_action( 'widgets_init', 'master_business_load_widgets' ); if ( ! class_exists( 'Master_Business_Social_Widget' ) ) : /** * Social widget Class. * * @since 1.0.0 */ class Master_Business_Social_Widget extends Master_Business_Widget_Base { /** * Sets up a new widget instance. * * @since 1.0.0 */ function __construct() { $opts = array( 'classname' => 'master_business_widget_social', 'description' => __( 'Displays social icons.', 'master-business' ), 'customize_selective_refresh' => true, ); $fields = array( 'title' => array( 'label' => __( 'Title:', 'master-business' ), 'type' => 'text', 'class' => 'widefat', ), 'subtitle' => array( 'label' => __( 'Subtitle:', 'master-business' ), '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.', 'master-business' ), 'type' => 'message', 'class' => 'widefat', ); } parent::__construct( 'master-business-social', __( 'MB: Social', 'master-business' ), $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 '<p class="widget-subtitle">' . esc_html( $params['subtitle'] ) . '</p>'; } if ( has_nav_menu( 'social' ) ) { wp_nav_menu( array( 'theme_location' => 'social', 'container' => false, 'depth' => 1, 'link_before' => '<span class="screen-reader-text">', 'link_after' => '</span>', ) ); } echo $args['after_widget']; } } endif; if ( ! class_exists( 'Master_Business_Featured_Page_Widget' ) ) : /** * Featured page widget Class. * * @since 1.0.0 */ class Master_Business_Featured_Page_Widget extends Master_Business_Widget_Base { /** * Sets up a new widget instance. * * @since 1.0.0 */ function __construct() { $opts = array( 'classname' => 'master_business_widget_featured_page', 'description' => __( 'Displays single featured Page or Post.', 'master-business' ), 'customize_selective_refresh' => true, ); $fields = array( 'title' => array( 'label' => __( 'Title:', 'master-business' ), 'type' => 'text', 'class' => 'widefat', ), 'use_page_title' => array( 'label' => __( 'Use Page/Post Title as Widget Title', 'master-business' ), 'type' => 'checkbox', 'default' => true, ), 'subtitle' => array( 'label' => __( 'Subtitle:', 'master-business' ), 'type' => 'text', 'class' => 'widefat', ), 'featured_page' => array( 'label' => __( 'Select Page:', 'master-business' ), 'type' => 'dropdown-pages', 'show_option_none' => __( '— Select —', 'master-business' ), ), 'id_message' => array( 'label' => '<strong>' . _x( 'OR', 'Featured Page Widget', 'master-business' ) . '</strong>', 'type' => 'message', ), 'featured_post' => array( 'label' => __( 'Post ID:', 'master-business' ), 'placeholder' => __( 'Eg: 1234', 'master-business' ), 'type' => 'text', 'sanitize_callback' => 'master_business_widget_sanitize_post_id', ), 'content_type' => array( 'label' => __( 'Show Content:', 'master-business' ), 'type' => 'select', 'default' => 'full', 'options' => array( 'excerpt' => __( 'Excerpt', 'master-business' ), 'full' => __( 'Full', 'master-business' ), ), ), 'excerpt_length' => array( 'label' => __( 'Excerpt Length:', 'master-business' ), 'description' => __( 'Applies when Excerpt is selected in Content option.', 'master-business' ), 'type' => 'number', 'css' => 'max-width:60px;', 'default' => 100, 'min' => 1, 'max' => 400, ), 'featured_image' => array( 'label' => __( 'Featured Image:', 'master-business' ), 'type' => 'select', 'options' => master_business_get_image_sizes_options(), ), 'featured_image_alignment' => array( 'label' => __( 'Image Alignment:', 'master-business' ), 'type' => 'select', 'default' => 'center', 'options' => master_business_get_image_alignment_options(), ), ); parent::__construct( 'master-business-featured-page', __( 'MB: Featured Page', 'master-business' ), $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 '<div class="featured-page-widget image-align' . esc_attr( $params['featured_image_alignment'] ) . ' entry-content">'; if ( 'disable' != $params['featured_image'] && has_post_thumbnail() ) { the_post_thumbnail( esc_attr( $params['featured_image'] ) ); } echo '<div class="featured-page-content">'; if ( true === $params['use_page_title'] ) { the_title( $args['before_title'], $args['after_title'] ); } else { if ( $params['title'] ) { echo $args['before_title'] . $params['title'] . $args['after_title']; } } if ( ! empty( $params['subtitle'] ) ) { echo '<p class="widget-subtitle">' . esc_html( $params['subtitle'] ) . '</p>'; } if ( 'excerpt' === $params['content_type'] && absint( $params['excerpt_length'] ) > 0 ) { $excerpt = master_business_the_excerpt( absint( $params['excerpt_length'] ) ); echo wp_kses_post( wpautop( $excerpt ) ); echo '<a href="' . esc_url( get_permalink() ) . '" class="more-link">' . esc_html__( 'Know More', 'master-business' ) . '</a>'; } else { the_content(); } echo '</div><!-- .featured-page-content -->'; echo '</div><!-- .featured-page-widget -->'; } wp_reset_postdata(); } } echo $args['after_widget']; } } endif; if ( ! class_exists( 'Master_Business_Latest_News_Widget' ) ) : /** * Latest news widget Class. * * @since 1.0.0 */ class Master_Business_Latest_News_Widget extends Master_Business_Widget_Base { /** * Sets up a new widget instance. * * @since 1.0.0 */ function __construct() { $opts = array( 'classname' => 'master_business_widget_latest_news', 'description' => __( 'Displays latest posts in grid.', 'master-business' ), 'customize_selective_refresh' => true, ); $fields = array( 'title' => array( 'label' => __( 'Title:', 'master-business' ), 'type' => 'text', 'class' => 'widefat', ), 'subtitle' => array( 'label' => __( 'Subtitle:', 'master-business' ), 'type' => 'text', 'class' => 'widefat', ), 'post_category' => array( 'label' => __( 'Select Category:', 'master-business' ), 'type' => 'dropdown-taxonomies', 'show_option_all' => __( 'All Categories', 'master-business' ), ), 'post_number' => array( 'label' => __( 'Number of Posts:', 'master-business' ), 'type' => 'number', 'default' => 3, 'css' => 'max-width:60px;', 'min' => 1, 'max' => 100, ), 'post_column' => array( 'label' => __( 'Number of Columns:', 'master-business' ), 'type' => 'select', 'default' => 3, 'options' => master_business_get_numbers_dropdown_options( 3, 4 ), ), 'featured_image' => array( 'label' => __( 'Featured Image:', 'master-business' ), 'type' => 'select', 'default' => 'master-business-thumb', 'options' => master_business_get_image_sizes_options(), ), 'excerpt_length' => array( 'label' => __( 'Excerpt Length:', 'master-business' ), 'description' => __( 'in words', 'master-business' ), 'type' => 'number', 'css' => 'max-width:60px;', 'default' => 15, 'min' => 1, 'max' => 400, 'adjacent' => true, ), 'more_text' => array( 'label' => __( 'More Text:', 'master-business' ), 'type' => 'text', 'default' => __( 'Know More', 'master-business' ), ), 'disable_date' => array( 'label' => __( 'Disable Date', 'master-business' ), 'type' => 'checkbox', 'default' => false, ), 'disable_excerpt' => array( 'label' => __( 'Disable Excerpt', 'master-business' ), 'type' => 'checkbox', 'default' => false, ), 'disable_more_text' => array( 'label' => __( 'Disable More Text', 'master-business' ), 'type' => 'checkbox', 'default' => false, ), ); parent::__construct( 'master-business-latest-news', __( 'MB: Latest News', 'master-business' ), $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 '<p class="widget-subtitle">' . esc_html( $params['subtitle'] ) . '</p>'; } $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 ); ?> <?php if ( ! empty( $all_posts ) ) : ?> <?php global $post; ?> <div class="latest-news-widget latest-news-col-<?php echo esc_attr( $params['post_column'] ); ?>"> <div class="inner-wrapper"> <?php foreach ( $all_posts as $key => $post ) : ?> <?php setup_postdata( $post ); ?> <div class="latest-news-item"> <?php if ( 'disable' !== $params['featured_image'] && has_post_thumbnail() ) : ?> <div class="latest-news-thumb"> <a href="<?php the_permalink(); ?>"> <?php $img_attributes = array( 'class' => 'aligncenter' ); the_post_thumbnail( esc_attr( $params['featured_image'] ), $img_attributes ); ?> </a> </div><!-- .latest-news-thumb --> <?php endif; ?> <div class="latest-news-text-wrap"> <div class="latest-news-text-content"> <h3 class="latest-news-title"> <a href="<?php the_permalink(); ?>"><?php the_title(); ?></a> </h3><!-- .latest-news-title --> <?php $category = master_business_get_single_post_category(); ?> <?php if ( false !== $params['disable_date'] || ! empty( $category ) ) : ?> <div class="latest-news-meta"> <?php if ( false === $params['disable_date'] ) : ?> <span class="posted-on"> <a href="<?php the_permalink(); ?>"><?php the_time( get_option( 'date_format' ) ); ?></a> </span> <?php endif; ?> <?php if ( ! empty( $category ) ) : ?> <span class="cat-links"><a href="<?php echo esc_url( $category['url'] ); ?>"><?php echo esc_html( $category['name'] ); ?></a></span> <?php endif; ?> </div><!-- .latest-news-meta --> <?php endif; ?> <?php if ( false === $params['disable_excerpt'] ) : ?> <div class="latest-news-summary"> <?php $summary = master_business_the_excerpt( esc_attr( $params['excerpt_length'] ), $post ); echo wp_kses_post( wpautop( $summary ) ); ?> </div><!-- .latest-news-summary --> <?php endif; ?> </div><!-- .latest-news-text-content --> <?php if ( false === $params['disable_more_text'] ) : ?> <a href="<?php the_permalink(); ?>" class="learn-more-link"><?php echo esc_html( $params['more_text'] ); ?><span class="screen-reader-text">"<?php the_title(); ?>"</span> </a> <?php endif; ?> </div><!-- .latest-news-text-wrap --> </div><!-- .latest-news-item --> <?php endforeach; ?> </div><!-- .row --> </div><!-- .latest-news-widget --> <?php wp_reset_postdata(); ?> <?php endif; ?> <?php echo $args['after_widget']; } } endif; if ( ! class_exists( 'Master_Business_Call_To_Action_Widget' ) ) : /** * Call to action widget Class. * * @since 1.0.0 */ class Master_Business_Call_To_Action_Widget extends Master_Business_Widget_Base { /** * Sets up a new widget instance. * * @since 1.0.0 */ function __construct() { $opts = array( 'classname' => 'master_business_widget_call_to_action', 'description' => __( 'Call To Action Widget.', 'master-business' ), 'customize_selective_refresh' => true, ); $fields = array( 'title' => array( 'label' => __( 'Title:', 'master-business' ), 'type' => 'text', 'class' => 'widefat', ), 'primary_button_text' => array( 'label' => __( 'Primary Button Text:', 'master-business' ), 'default' => __( 'Learn more', 'master-business' ), 'type' => 'text', 'class' => 'widefat', ), 'primary_button_url' => array( 'label' => __( 'Primary Button URL:', 'master-business' ), 'type' => 'url', 'class' => 'widefat', ), 'secondary_button_text' => array( 'label' => __( 'Secondary Button Text:', 'master-business' ), 'default' => '', 'type' => 'text', 'class' => 'widefat', ), 'secondary_button_url' => array( 'label' => __( 'Secondary Button URL:', 'master-business' ), 'type' => 'url', 'class' => 'widefat', ), ); parent::__construct( 'master-business-call-to-action', __( 'MB: Call To Action', 'master-business' ), $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 extra classes. $extra_class = 'cta-layout-1'; $args['before_widget'] = implode( 'class="' . $extra_class . ' ', explode( 'class="', $args['before_widget'], 2 ) ); echo $args['before_widget']; echo '<div class="call-to-action-main-wrap">'; echo '<div class="call-to-action-content-wrap">'; if ( ! empty( $params['title'] ) ) { echo $args['before_title'] . $params['title'] . $args['after_title']; } echo '</div>'; ?> <?php if ( ( ! empty( $params['primary_button_text'] ) && ! empty( $params['primary_button_url'] ) ) || ( ! empty( $params['secondary_button_text'] ) && ! empty( $params['secondary_button_url'] ) ) ) : ?> <div class="call-to-action-buttons"> <?php if ( ! empty( $params['primary_button_url'] ) && ! empty( $params['primary_button_text'] ) ) : ?> <a href="<?php echo esc_url( $params['primary_button_url'] ); ?>" class="custom-button btn-call-to-action button-primary"><?php echo esc_html( $params['primary_button_text'] ); ?></a> <?php endif; ?> <?php if ( ! empty( $params['secondary_button_url'] ) && ! empty( $params['secondary_button_text'] ) ) : ?> <a href="<?php echo esc_url( $params['secondary_button_url'] ); ?>" class="custom-button btn-call-to-action button-secondary"><?php echo esc_html( $params['secondary_button_text'] ); ?></a> <?php endif; ?> </div><!-- .call-to-action-buttons --> <?php endif; ?> <?php echo '</div>'; ?> <?php echo $args['after_widget']; } } endif; if ( ! class_exists( 'Master_Business_Services_Widget' ) ) : /** * Services widget Class. * * @since 1.0.0 */ class Master_Business_Services_Widget extends Master_Business_Widget_Base { /** * Sets up a new widget instance. * * @since 1.0.0 */ function __construct() { $opts = array( 'classname' => 'master_business_widget_services', 'description' => __( 'Show your services with icon and read more link.', 'master-business' ), 'customize_selective_refresh' => true, ); $fields = array( 'title' => array( 'label' => __( 'Title:', 'master-business' ), 'type' => 'text', 'class' => 'widefat', ), 'subtitle' => array( 'label' => __( 'Subtitle:', 'master-business' ), 'type' => 'text', 'class' => 'widefat', ), 'excerpt_length' => array( 'label' => __( 'Excerpt Length:', 'master-business' ), 'description' => __( 'in words', 'master-business' ), 'type' => 'number', 'css' => 'max-width:60px;', 'default' => 15, 'min' => 1, 'max' => 400, 'adjacent' => true, ), 'disable_excerpt' => array( 'label' => __( 'Disable Excerpt', 'master-business' ), 'type' => 'checkbox', 'default' => false, ), 'more_text' => array( 'label' => __( 'Read More Text:', 'master-business' ), 'type' => 'text', 'default' => __( 'Know More', 'master-business' ), ), 'disable_more_text' => array( 'label' => __( 'Disable Read More', 'master-business' ), 'type' => 'checkbox', 'default' => false, ), ); for( $i = 1; $i <= 6; $i++ ) { $fields[ 'block_heading_' . $i ] = array( 'label' => __( 'Block', 'master-business' ) . ' #' . $i, 'type' => 'heading', 'class' => 'widefat', ); $fields[ 'block_page_' . $i ] = array( 'label' => __( 'Select Page:', 'master-business' ), 'type' => 'dropdown-pages', 'show_option_none' => __( '— Select —', 'master-business' ), ); $fields[ 'block_icon_' . $i ] = array( 'label' => __( 'Icon:', 'master-business' ), 'description' => __( 'Eg: fa-cogs', 'master-business' ), 'type' => 'text', 'default' => 'fa-cogs', ); } parent::__construct( 'master-business-services', __( 'MB: Services', 'master-business' ), $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 '<p class="widget-subtitle">' . esc_html( $params['subtitle'] ) . '</p>'; } $service_arr = array(); for ( $i = 0; $i < 6 ; $i++ ) { $block = ( $i + 1 ); $service_arr[ $i ] = array( 'page' => $params[ 'block_page_' . $block ], 'icon' => $params[ 'block_icon_' . $block ], ); } $refined_arr = array(); if ( ! empty( $service_arr ) ) { foreach ( $service_arr as $item ) { if ( ! empty( $item['page'] ) ) { $refined_arr[ $item['page'] ] = $item; } } } if ( ! empty( $refined_arr ) ) { $this->render_widget_content( $refined_arr, $params ); } echo $args['after_widget']; } /** * Render services content. * * @since 1.0.0 * * @param array $service_arr Services array. * @param array $params Parameters array. */ function render_widget_content( $service_arr, $params ) { $column = count( $service_arr ); $page_ids = array_keys( $service_arr ); $qargs = array( 'posts_per_page' => count( $page_ids ), 'post__in' => $page_ids, 'post_type' => 'page', 'orderby' => 'post__in', 'no_found_rows' => true, ); $all_posts = get_posts( $qargs ); ?> <?php if ( ! empty( $all_posts ) ) : ?> <?php global $post; ?> <div class="service-block-list service-col-<?php echo esc_attr( $column ); ?>"> <div class="inner-wrapper"> <?php foreach ( $all_posts as $post ) : ?> <?php setup_postdata( $post ); ?> <div class="service-block-item"> <div class="service-block-inner"> <?php if ( isset( $service_arr[ $post->ID ]['icon'] ) && ! empty( $service_arr[ $post->ID ]['icon'] ) ) : ?> <a class="service-icon" href="<?php echo esc_url( get_permalink( $post->ID ) ); ?>"><i class="<?php echo 'fa ' . esc_attr( $service_arr[ $post->ID ]['icon'] ); ?>"></i></a> <?php endif; ?> <div class="service-block-inner-content"> <h3 class="service-item-title"> <a href="<?php echo esc_url( get_permalink( $post->ID ) ); ?>"> <?php echo get_the_title( $post->ID ); ?> </a> </h3> <?php if ( true !== $params['disable_excerpt'] ) : ?> <div class="service-block-item-excerpt"> <?php $excerpt = master_business_the_excerpt( $params['excerpt_length'], $post ); echo wp_kses_post( wpautop( $excerpt ) ); ?> </div><!-- .service-block-item-excerpt --> <?php endif; ?> <?php if ( true !== $params['disable_more_text'] ) : ?> <a href="<?php echo esc_url( get_permalink( $post->ID ) ); ?>" class="learn-more-link"><?php echo esc_html( $params['more_text'] ); ?></a> <?php endif; ?> </div><!-- .service-block-inner-content --> </div><!-- .service-block-inner --> </div><!-- .service-block-item --> <?php endforeach; ?> </div><!-- .inner-wrapper --> </div><!-- .service-block-list --> <?php wp_reset_postdata(); ?> <?php endif; ?> <?php } } endif; if ( ! class_exists( 'Master_Business_Recent_Posts_Widget' ) ) : /** * Recent posts widget Class. * * @since 1.0.0 */ class Master_Business_Recent_Posts_Widget extends Master_Business_Widget_Base { /** * Sets up a new widget instance. * * @since 1.0.0 */ function __construct() { $opts = array( 'classname' => 'master_business_widget_recent_posts', 'description' => __( 'Displays recent posts.', 'master-business' ), 'customize_selective_refresh' => true, ); $fields = array( 'title' => array( 'label' => __( 'Title:', 'master-business' ), 'type' => 'text', 'class' => 'widefat', ), 'subtitle' => array( 'label' => __( 'Subtitle:', 'master-business' ), 'type' => 'text', 'class' => 'widefat', ), 'post_category' => array( 'label' => __( 'Select Category:', 'master-business' ), 'type' => 'dropdown-taxonomies', 'show_option_all' => __( 'All Categories', 'master-business' ), ), 'post_number' => array( 'label' => __( 'Number of Posts:', 'master-business' ), 'type' => 'number', 'default' => 4, 'css' => 'max-width:60px;', 'min' => 1, 'max' => 100, ), 'featured_image' => array( 'label' => __( 'Featured Image:', 'master-business' ), 'type' => 'select', 'default' => 'thumbnail', 'options' => master_business_get_image_sizes_options( true, array( 'disable', 'thumbnail' ), false ), ), 'image_width' => array( 'label' => __( 'Image Width:', 'master-business' ), 'type' => 'number', 'description' => __( 'px', 'master-business' ), 'css' => 'max-width:60px;', 'adjacent' => true, 'default' => 70, 'min' => 1, 'max' => 150, ), 'disable_date' => array( 'label' => __( 'Disable Date', 'master-business' ), 'type' => 'checkbox', 'default' => false, ), ); parent::__construct( 'master-business-recent-posts', __( 'MB: Recent Posts', 'master-business' ), $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 '<p class="widget-subtitle">' . esc_html( $params['subtitle'] ) . '</p>'; } $qargs = array( 'posts_per_page' => esc_attr( $params['post_number'] ), 'no_found_rows' => true, ); if ( absint( $params['post_category'] ) > 0 ) { $qargs['cat'] = $params['post_category']; } $all_posts = get_posts( $qargs ); ?> <?php if ( ! empty( $all_posts ) ) : ?> <?php global $post; ?> <div class="recent-posts-wrapper"> <?php foreach ( $all_posts as $key => $post ) : ?> <?php setup_postdata( $post ); ?> <div class="recent-posts-item"> <?php if ( 'disable' !== $params['featured_image'] && has_post_thumbnail() ) : ?> <div class="recent-posts-thumb"> <a href="<?php the_permalink(); ?>"> <?php $img_attributes = array( 'class' => 'alignleft', 'style' => 'max-width:' . esc_attr( $params['image_width'] ). 'px;', ); the_post_thumbnail( esc_attr( $params['featured_image'] ), $img_attributes ); ?> </a> </div><!-- .recent-posts-thumb --> <?php endif ?> <div class="recent-posts-text-wrap"> <h3 class="recent-posts-title"> <a href="<?php the_permalink(); ?>"><?php the_title(); ?></a> </h3><!-- .recent-posts-title --> <?php if ( false === $params['disable_date'] ) : ?> <div class="recent-posts-meta"> <?php if ( false === $params['disable_date'] ) : ?> <span class="recent-posts-date"><?php the_time( get_option( 'date_format' ) ); ?></span><!-- .recent-posts-date --> <?php endif; ?> </div><!-- .recent-posts-meta --> <?php endif; ?> </div><!-- .recent-posts-text-wrap --> </div><!-- .recent-posts-item --> <?php endforeach; ?> </div><!-- .recent-posts-wrapper --> <?php wp_reset_postdata(); // Reset. ?> <?php endif; ?> <?php echo $args['after_widget']; } } endif; if ( ! class_exists( 'Master_Business_News_Blocks_Widget' ) ) : /** * Featured pages grid widget Class. * * @since 1.0.0 */ class Master_Business_News_Blocks_Widget extends Master_Business_Widget_Base { /** * Sets up a new widget instance. * * @since 1.0.0 */ function __construct() { $opts = array( 'classname' => 'master_business_widget_news_blocks', 'description' => __( 'Displays news and blocks.', 'master-business' ), 'customize_selective_refresh' => true, ); $fields = array( 'title' => array( 'label' => __( 'Title:', 'master-business' ), 'type' => 'text', 'class' => 'widefat', ), 'subtitle' => array( 'label' => __( 'Subtitle:', 'master-business' ), 'type' => 'text', 'class' => 'widefat', ), 'heading_1' => array( 'label' => __( 'First Block', 'master-business' ), 'type' => 'heading', 'class' => 'widefat', ), 'block_title_1' => array( 'label' => __( 'Block Title:', 'master-business' ), 'default' => __( 'Latest News', 'master-business' ), 'type' => 'text', 'class' => 'widefat', ), 'block_icon_1' => array( 'label' => __( 'Block Icon:', 'master-business' ), 'default' => 'fa-th', 'type' => 'text', 'class' => 'widefat', ), 'block_post_category_1' => array( 'label' => __( 'Select Category:', 'master-business' ), 'type' => 'dropdown-taxonomies', 'show_option_all' => __( 'All Categories', 'master-business' ), ), 'block_post_number_1' => array( 'label' => __( 'No of Posts:', 'master-business' ), 'default' => 2, 'type' => 'number', 'css' => 'max-width:60px;', 'min' => 1, 'max' => 10, ), 'block_featured_image_1' => array( 'label' => __( 'Featured Image:', 'master-business' ), 'type' => 'select', 'default' => 'master-business-thumb', 'options' => master_business_get_image_sizes_options(), ), 'block_excerpt_length_1' => array( 'label' => __( 'Excerpt Length:', 'master-business' ), 'description' => __( 'in words', 'master-business' ), 'type' => 'number', 'css' => 'max-width:60px;', 'default' => 15, 'min' => 1, 'max' => 400, 'adjacent' => true, ), 'block_disable_excerpt_1' => array( 'label' => __( 'Disable Excerpt', 'master-business' ), 'type' => 'checkbox', 'default' => false, ), 'heading_2' => array( 'label' => __( 'Second Block', 'master-business' ), 'type' => 'heading', 'class' => 'widefat', ), 'block_title_2' => array( 'label' => __( 'Block Title:', 'master-business' ), 'default' => __( 'Recent Highlights', 'master-business' ), 'type' => 'text', 'class' => 'widefat', ), 'block_icon_2' => array( 'label' => __( 'Block Icon:', 'master-business' ), 'default' => 'fa-calendar-check-o', 'type' => 'text', 'class' => 'widefat', ), 'block_post_category_2' => array( 'label' => __( 'Select Category:', 'master-business' ), 'type' => 'dropdown-taxonomies', 'show_option_all' => __( 'All Categories', 'master-business' ), ), 'block_post_number_2' => array( 'label' => __( 'No of Posts:', 'master-business' ), 'default' => 4, 'type' => 'number', 'css' => 'max-width:60px;', 'min' => 1, 'max' => 10, ), 'block_excerpt_length_2' => array( 'label' => __( 'Excerpt Length:', 'master-business' ), 'description' => __( 'in words', 'master-business' ), 'type' => 'number', 'css' => 'max-width:60px;', 'default' => 10, 'min' => 1, 'max' => 400, 'adjacent' => true, ), 'block_disable_excerpt_2' => array( 'label' => __( 'Disable Excerpt', 'master-business' ), 'type' => 'checkbox', 'default' => false, ), ); parent::__construct( 'master-business-news-blocks', __( 'MB: News Blocks', 'master-business' ), $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 '<p class="widget-subtitle">' . esc_html( $params['subtitle'] ) . '</p>'; } ?> <div class="news-and-blocks"> <div class="inner-wrapper"> <div class="recent-news"> <?php if ( ! empty( $params['block_title_1'] ) ) : ?> <h2> <?php if ( ! empty( $params['block_icon_1'] ) ) : ?> <i class="fa <?php echo esc_attr( $params['block_icon_1'] ); ?>" aria-hidden="true"></i> <?php endif; ?> <?php echo esc_html( $params['block_title_1'] ); ?> </h2> <?php if ( absint( $params['block_post_category_1'] ) > 0 ) : ?> <?php $term_link = get_term_link( absint( $params['block_post_category_1'] ), 'category' ); ?> <?php if ( ! is_wp_error( $term_link ) ) : ?> <a href="<?php echo esc_url( $term_link ); ?>" class="view-more-post"><?php esc_html_e( 'View More', 'master-business' ); ?></a> <?php endif; ?> <?php endif; ?> <?php endif; ?> <div class="inner-wrapper"> <?php $qargs = array( 'posts_per_page' => absint( $params['block_post_number_1'] ), 'no_found_rows' => true, 'ignore_sticky_posts' => true, ); if ( absint( $params['block_post_category_1'] ) > 0 ) { $qargs['cat'] = absint( $params['block_post_category_1'] ); } ?> <?php $the_query = new WP_Query( $qargs ); ?> <?php if ( $the_query->have_posts() ) : ?> <?php while ( $the_query->have_posts() ) : $the_query->the_post(); ?> <div class="news-post"> <?php if ( 'disable' !== $params['block_featured_image_1'] && has_post_thumbnail() ) : ?> <a href="<?php the_permalink(); ?>"> <?php $img_attributes = array( 'class' => 'aligncenter' ); the_post_thumbnail( esc_attr( $params['block_featured_image_1'] ), $img_attributes ); ?> </a> <?php endif; ?> <div class="news-content"> <h3><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></h3> <div class="block-meta"> <span class="posted-on"> <a href="<?php the_permalink(); ?>"><?php the_time( get_option( 'date_format' ) ); ?></a> </span> <?php if ( ! post_password_required() && ( comments_open() || get_comments_number() ) ) { echo '<span class="comments-link">'; comments_popup_link( esc_html__( '0 comments', 'master-business' ), esc_html__( '1 Comment', 'master-business' ), esc_html__( '% Comments', 'master-business' ) ); echo '</span>'; } ?> </div><!-- .block-meta --> <?php if ( false === $params['block_disable_excerpt_1'] ) : ?> <?php $summary = master_business_the_excerpt( absint( $params['block_excerpt_length_1'] ) ); echo wp_kses_post( wpautop( $summary ) ); ?> <?php endif; ?> </div><!-- .news-content --> </div><!-- .news-post --> <?php endwhile; ?> <?php wp_reset_postdata(); ?> <?php endif; ?> </div><!-- .inner-wrapper --> </div><!-- .recent-news --> <div class="recent-blocks"> <?php if ( ! empty( $params['block_title_2'] ) ) : ?> <h2> <?php if ( ! empty( $params['block_icon_2'] ) ) : ?> <i class="fa <?php echo esc_attr( $params['block_icon_2'] ); ?>" aria-hidden="true"></i> <?php endif; ?> <?php echo esc_html( $params['block_title_2'] ); ?> </h2> <?php if ( absint( $params['block_post_category_2'] ) > 0 ) : ?> <?php $term_link = get_term_link( absint( $params['block_post_category_2'] ), 'category' ); ?> <?php if ( ! is_wp_error( $term_link ) ) : ?> <a href="<?php echo esc_url( $term_link ); ?>" class="view-more-post"><?php esc_html_e( 'View More', 'master-business' ); ?></a> <?php endif; ?> <?php endif; ?> <?php endif; ?> <?php $qargs = array( 'posts_per_page' => absint( $params['block_post_number_2'] ), 'no_found_rows' => true, 'ignore_sticky_posts' => true, ); if ( absint( $params['block_post_category_2'] ) > 0 ) { $qargs['cat'] = absint( $params['block_post_category_2'] ); } ?> <?php $the_query = new WP_Query( $qargs ); ?> <?php if ( $the_query->have_posts() ) : ?> <?php while ( $the_query->have_posts() ) : $the_query->the_post(); ?> <div class="block-post"> <div class="custom-entry-date"> <span class="entry-month"><?php the_time( esc_html_x( 'M', 'date format', 'master-business' ) ); ?></span> <span class="entry-day"><?php the_time( esc_html_x( 'd', 'date format', 'master-business' ) ); ?></span> </div> <h3><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></h3> <?php if ( false === $params['block_disable_excerpt_2'] ) : ?> <?php $summary = master_business_the_excerpt( absint( $params['block_excerpt_length_2'] ) ); echo wp_kses_post( wpautop( $summary ) ); ?> <?php endif; ?> </div><!-- .block-post --> <?php endwhile; ?> <?php wp_reset_postdata(); ?> <?php endif; ?> </div><!-- .recent-blocks --> </div> <!-- .inner-wrapper --> </div><!-- .news-and-blocks --> <?php echo $args['after_widget']; } } endif;