'kadence_recent_posts', 'description' => __('This shows the most recent posts on your site with a thumbnail', 'ascend'));
parent::__construct('kadence_recent_posts', __('Ascend: Recent Posts', 'ascend'), $widget_ops);
}
public function widget($args, $instance) {
if ( ! isset( $args['widget_id'] ) ) {
$args['widget_id'] = $this->id;
}
extract($args);
$title = apply_filters('widget_title', empty($instance['title']) ? '' : $instance['title'], $instance, $this->id_base);
if ( empty( $instance['number'] ) || ! $number = absint( $instance['number'] ) ) {
$number = 10;
}
if(isset($instance['orderby'])) {
$orderby = $instance['orderby'];
} else {
$orderby = 'date';
}
if($orderby == "menu_order" || $orderby == "title") {
$order = "ASC";
} else {
$order = "DESC";
}
if(isset($instance['first_feature']) && $instance['first_feature'] == "true") {
$feature = "true";
} else {
$feature = "false";
}
if(isset($instance['read_more']) && $instance['read_more'] == "true") {
$readmore = "true";
} else {
$readmore = "false";
}
if(isset($instance['read_more_txt']) && !empty($instance['read_more_txt'])) {
$readmore_txt = $instance['read_more_txt'];
} else {
$readmore_txt = __('Read More', 'ascend');
}
if(isset($instance['thecate'])) {
$cat = $instance['thecate'];
} else {
$cat = __('Read More', 'ascend');
}
$r = new WP_Query( apply_filters( 'widget_posts_args', array(
'posts_per_page' => $number,
'category_name' => $cat,
'no_found_rows' => true,
'post_status' => 'publish',
'orderby' => $orderby,
'order' => $order,
'ignore_sticky_posts' => true
)
) );
if ($r->have_posts()) :
$image_size = apply_filters('kadence_post_widget_image_size', array('width'=> 60, 'height' => 60));
$feature_image_size = apply_filters('kadence_post_feature_widget_image_size', array('width'=> 420, 'height' => 280));
echo $before_widget;
if ( $title ) {
echo $before_title . $title . $after_title;
}
echo '
';
$i = 1;
while ($r->have_posts()) : $r->the_post();
global $post;
if($feature == "true" && $i == 1) {
echo '- ';
if(has_post_thumbnail( $post->ID ) ) {
echo '';
echo ascend_get_full_image_output($feature_image_size['width'], $feature_image_size['height'], true, 'attachment-widget-thumb wp-post-image', null, null, true);
echo '';
}
} else {
echo '
- ';
if(has_post_thumbnail( $post->ID ) ) {
echo '';
echo ascend_get_full_image_output($image_size['width'], $image_size['height'], true, 'attachment-widget-thumb wp-post-image', null, null, true);
echo '';
}
}
echo '';
echo '
';
$i ++;
endwhile;
echo '
';
if($readmore == 'true') {
if(isset($instance['thecate']) && !empty($instance['thecate'])) {
$cat = get_category_by_slug($instance['thecate']);
$link = get_category_link($cat->term_id);
} else {
$post_id = get_option( 'page_for_posts' );
if(isset($post_id) && !empty($post_id)) {
$link = get_the_permalink($post_id);
} else {
$link = home_url();
}
}
echo '';
}
echo $after_widget;
wp_reset_postdata();
endif;
}
public function update( $new_instance, $old_instance ) {
$instance = $old_instance;
$instance['title'] = sanitize_text_field($new_instance['title']);
$instance['orderby'] = sanitize_text_field($new_instance['orderby']);
$instance['number'] = (int) $new_instance['number'];
$instance['thecate'] = sanitize_text_field($new_instance['thecate']);
$instance['first_feature'] = sanitize_text_field($new_instance['first_feature']);
$instance['read_more'] = sanitize_text_field($new_instance['read_more']);
$instance['read_more_txt'] = sanitize_text_field($new_instance['read_more_txt']);
return $instance;
}
public function form( $instance ) {
$title = isset($instance['title']) ? esc_attr($instance['title']) : '';
$number = isset($instance['number']) ? absint($instance['number']) : 5;
if (isset($instance['thecate'])) { $thecate = esc_attr($instance['thecate']); } else {$thecate = '';}
if (isset($instance['orderby'])) { $orderby = esc_attr($instance['orderby']); } else {$orderby = 'date';}
$first_feature = isset($instance['first_feature']) ? $instance['first_feature'] : "false";
$read_more = isset($instance['read_more']) ? $instance['read_more'] : "false";
$read_more_txt = isset($instance['read_more_txt']) ? esc_attr($instance['read_more_txt']) : '';
$orderoptions = array(array('name' => 'Date', 'slug' => 'date'), array('name' => 'Random', 'slug' => 'rand'), array('name' => 'Comment Count', 'slug' => 'comment_count'), array('name' => 'Modified', 'slug' => 'modified'));
$true_false_options = array(array('name' => 'False', 'slug' => 'false'), array('name' => 'True', 'slug' => 'true'));
$categories= get_categories();
$cate_options = array();
$cate_options[] = '';
foreach ($categories as $cate) {
if ($thecate==$cate->slug) { $selected=' selected="selected"';} else { $selected=""; }
$cate_options[] = '';
}
$order_options = array();
foreach ($orderoptions as $ooption) {
if ($orderby==$ooption['slug']) { $selected=' selected="selected"';} else { $selected=""; }
$order_options[] = '';
}
$feature_options = array();
foreach ($true_false_options as $foption) {
if ($first_feature==$foption['slug']) { $selected=' selected="selected"';} else { $selected=""; }
$feature_options[] = '';
}
$readmore_options = array();
foreach ($true_false_options as $roption) {
if ($read_more ==$roption['slug']) { $selected=' selected="selected"';} else { $selected=""; }
$readmore_options[] = '';
}
?>