mh_magazine_lite_posts_large
The MH Magazine lite mh magazine lite posts large class.
Defined (1)
The class is defined in the following location(s).
- /includes/widgets/mh-posts-large.php
- class mh_magazine_lite_posts_large extends WP_Widget {
- function __construct() {
- parent::__construct(
- 'mh_magazine_lite_posts_large', esc_html_x('MH Posts Large [lite]', 'widget name', 'mh-magazine-lite'),
- array(
- 'classname' => 'mh_magazine_lite_posts_large',
- 'description' => esc_html__('MH Posts Large widget to display posts (large-sized) including thumbnail images.', 'mh-magazine-lite'),
- 'customize_selective_refresh' => true
- )
- );
- }
- function widget($args, $instance) {
- $defaults = array('title' => '', 'category' => 0, 'tags' => '', 'postcount' => 1, 'offset' => 0, 'sticky' => 1);
- $instance = wp_parse_args($instance, $defaults);
- $query_args = array();
- $query_args['ignore_sticky_posts'] = $instance['sticky'];
- if (0 !== $instance['category']) {
- $query_args['cat'] = $instance['category'];
- }
- if (!empty($instance['tags'])) {
- $tag_slugs = explode(', ', $instance['tags']);
- $tag_slugs = array_map('trim', $tag_slugs);
- $query_args['tag_slug__in'] = $tag_slugs;
- }
- if (!empty($instance['postcount'])) {
- $query_args['posts_per_page'] = $instance['postcount'];
- }
- if (0 !== $instance['offset']) {
- $query_args['offset'] = $instance['offset'];
- }
- $widget_posts = new WP_Query($query_args);
- echo $args['before_widget'];
- if ($widget_posts->have_posts()) :
- if (!empty($instance['title'])) {
- echo $args['before_title'] . esc_html(apply_filters('widget_title', $instance['title'])) . $args['after_title'];
- }
- echo '<div class="mh-posts-large-widget">' . "\n";
- while ($widget_posts->have_posts()) : $widget_posts->the_post();
- get_template_part('content', 'large');
- endwhile;
- wp_reset_postdata();
- echo '</div>' . "\n";
- endif;
- echo $args['after_widget'];
- }
- function update($new_instance, $old_instance) {
- $instance = array();
- if (!empty($new_instance['title'])) {
- $instance['title'] = sanitize_text_field($new_instance['title']);
- }
- if (0 !== absint($new_instance['category'])) {
- $instance['category'] = absint($new_instance['category']);
- }
- if (!empty($new_instance['tags'])) {
- $tag_slugs = explode(', ', $new_instance['tags']);
- $tag_slugs = array_map('sanitize_title', $tag_slugs);
- $instance['tags'] = implode(', ', $tag_slugs);
- }
- if (0 !== absint($new_instance['postcount'])) {
- if (absint($new_instance['postcount']) > 50) {
- $instance['postcount'] = 50;
- } else {
- $instance['postcount'] = absint($new_instance['postcount']);
- }
- }
- if (0 !== absint($new_instance['offset'])) {
- if (absint($new_instance['offset']) > 50) {
- $instance['offset'] = 50;
- } else {
- $instance['offset'] = absint($new_instance['offset']);
- }
- }
- return $instance;
- }
- function form($instance) {
- $defaults = array('title' => '', 'category' => 0, 'tags' => '', 'postcount' => 1, 'offset' => 0, 'sticky' => 1);
- $instance = wp_parse_args($instance, $defaults); ?>
- <p>
- <label for="<?php echo esc_attr($this->get_field_id('title')); ?>"><?php esc_html_e('Title:', 'mh-magazine-lite'); ?></label>
- <input class="widefat" type="text" value="<?php echo esc_attr($instance['title']); ?>" name="<?php echo esc_attr($this->get_field_name('title')); ?>" id="<?php echo esc_attr($this->get_field_id('title')); ?>" />
- </p>
- <p>
- <label for="<?php echo esc_attr($this->get_field_id('category')); ?>"><?php esc_html_e('Select a Category:', 'mh-magazine-lite'); ?></label>
- <select id="<?php echo esc_attr($this->get_field_id('category')); ?>" class="widefat" name="<?php echo esc_attr($this->get_field_name('category')); ?>">
- <option value="0" <?php selected(0, $instance['category']); ?>><?php esc_html_e('All', 'mh-magazine-lite'); ?></option><?php
- $categories = get_categories();
- foreach ($categories as $cat) { ?>
- <option value="<?php echo absint($cat->cat_ID); ?>" <?php selected($cat->cat_ID, $instance['category']); ?>><?php echo esc_html($cat->cat_name) . ' (' . absint($cat->category_count) . ')'; ?></option><?php
- } ?>
- </select>
- <small><?php esc_html_e('Select a category to display posts from.', 'mh-magazine-lite'); ?></small>
- </p>
- <p>
- <label for="<?php echo esc_attr($this->get_field_id('tags')); ?>"><?php esc_html_e('Filter Posts by Tags (e.g. lifestyle):', 'mh-magazine-lite'); ?></label>
- <input class="widefat" type="text" value="<?php echo esc_attr($instance['tags']); ?>" name="<?php echo esc_attr($this->get_field_name('tags')); ?>" id="<?php echo esc_attr($this->get_field_id('tags')); ?>" />
- </p>
- <p>
- <label for="<?php echo esc_attr($this->get_field_id('postcount')); ?>"><?php esc_html_e('Post Count (max. 50):', 'mh-magazine-lite'); ?></label>
- <input class="widefat" type="text" value="<?php echo absint($instance['postcount']); ?>" name="<?php echo esc_attr($this->get_field_name('postcount')); ?>" id="<?php echo esc_attr($this->get_field_id('postcount')); ?>" />
- </p>
- <p>
- <label for="<?php echo esc_attr($this->get_field_id('offset')); ?>"><?php esc_html_e('Skip Posts (max. 50):', 'mh-magazine-lite'); ?></label>
- <input class="widefat" type="text" value="<?php echo absint($instance['offset']); ?>" name="<?php echo esc_attr($this->get_field_name('offset')); ?>" id="<?php echo esc_attr($this->get_field_id('offset')); ?>" />
- </p>
- <p>
- <strong><?php esc_html_e('Info:', 'mh-magazine-lite'); ?></strong> <?php esc_html_e('This is the lite version of this widget with basic features. More features and options are available in the premium version of MH Magazine.', 'mh-magazine-lite'); ?>
- </p><?php
- }
- }