How Do You Display Excerpts For Each Post In A Recent Custom Post Widget
-
I am using a widget that displays the recent entries from a custom post type and I am trying to display the excerpt for each post. I’ve tried adding get_the_excerpt() and that seems to display the excerpt for the actual post that is displaying on the page in which this sidebar widget is next to.
Here is the code. Any help would be appreciated.
<?php add_action( 'widgets_init', 'recent_package_widget' ); function recent_package_widget() { register_widget( 'Recent_Package' ); } class Recent_Package extends WP_Widget { // Initialize the widget function Recent_Package() { parent::WP_Widget('recent-package-widget', __('Recent Package Widget (Goodlayers)','gdl_back_office'), array('description' => __('A widget that show lastest packages', 'gdl_back_office'))); } // Output of the widget function widget( $args, $instance ) { global $gdl_widget_date_format, $blog_port_widget_size; extract( $args ); $title = apply_filters( 'widget_title', $instance['title'] ); $post_cat = $instance['post_cat']; $show_num = $instance['show_num']; if($post_cat == "All"){ $post_cat = ''; } // Opening of widget echo $before_widget; // Open of title tag if ( $title ){ echo $before_title . $title . $after_title; } // Widget Content wp_reset_query(); $current_post = array(get_the_ID()); $custom_posts = get_posts( array('post_type'=>'package', 'showposts'=>$show_num, 'package-category'=>$post_cat, 'post__not_in'=>$current_post, 'suppress_filters'=>'0') ); if( !empty($custom_posts) ){ echo "<div class='gdl-recent-post-widget'>"; foreach($custom_posts as $custom_post) { ?> <div class="recent-post-widget"> <?php $thumbnail_id = get_post_thumbnail_id( $custom_post->ID ); $thumbnail = wp_get_attachment_image_src( $thumbnail_id , $blog_port_widget_size ); if( $thumbnail_id ){ echo '<div class="recent-post-widget-thumbnail">'; echo '<a href="' . get_permalink( $custom_post->ID ) . '">'; $alt_text = get_post_meta($thumbnail_id , '_wp_attachment_image_alt', true); if( !empty($thumbnail) ){ echo '<img src="' . $thumbnail[0] . '" alt="'. $alt_text .'"/>'; } echo '</a>'; echo '</div>'; } ?> <div class="recent-post-widget-context"> <h4 class="recent-post-widget-title"> <a href="<?php echo get_permalink( $custom_post->ID ); ?>"> <?php _e( $custom_post->post_title, 'gdl_front_end'); ?> </a> </h4> <div class="recent-post-widget-info"> <div class="recent-post-widget-date"><i class="icon-time"></i> <?php $date_type = get_post_meta( $custom_post->ID, 'package-date-type', true ); if( $date_type == 'Fixed' ){ $start_date = get_post_meta( $custom_post->ID, 'package-start-date', true ); $end_date = get_post_meta( $custom_post->ID, 'package-end-date', true ); echo get_package_date($start_date, $end_date, $gdl_widget_date_format); }else if( $date_type == 'Duration' ){ echo get_post_meta( $custom_post->ID, 'package-duration', true ); } ?> </div> </div> </div> <div class="clear"></div> </div> <?php } echo "</div>"; } // Closing of widget echo $after_widget; } // Widget Form function form( $instance ) { if ( $instance ) { $title = esc_attr( $instance[ 'title' ] ); $post_cat = esc_attr( $instance[ 'post_cat' ] ); $show_num = esc_attr( $instance[ 'show_num' ] ); } else { $title = ''; $post_cat = ''; $show_num = '3'; } ?> <!-- Text Input --> <p> <label for="<?php echo $this->get_field_id('title'); ?>"><?php _e( 'Title :', 'gdl_back_office' ); ?></label> <input class="widefat" id="<?php echo $this->get_field_id('title'); ?>" name="<?php echo $this->get_field_name('title'); ?>" type="text" value="<?php echo $title; ?>" /> </p> <!-- Post Category --> <p> <label for="<?php echo $this->get_field_id( 'post_cat' ); ?>"><?php _e('Category :', 'gdl_back_office'); ?></label> <select class="widefat" name="<?php echo $this->get_field_name( 'post_cat' ); ?>" id="<?php echo $this->get_field_id( 'post_cat' ); ?>"> <?php $category_list = get_category_list( 'package-category' ); foreach($category_list as $category){ ?> <option value="<?php echo $category; ?>" <?php if ( $post_cat == $category ) echo ' selected="selected"'; ?>><?php echo $category; ?></option> <?php } ?> </select> </p> <!-- Show Num --> <p> <label for="<?php echo $this->get_field_id( 'show_num' ); ?>"><?php _e('Show Count :', 'gdl_back_office'); ?></label> <input class="widefat" id="<?php echo $this->get_field_id( 'show_num' ); ?>" name="<?php echo $this->get_field_name( 'show_num' ); ?>" type="text" value="<?php echo $show_num; ?>" /> </p> <?php } // Update the widget function update( $new_instance, $old_instance ) { $instance = $old_instance; $instance['title'] = strip_tags( $new_instance['title'] ); $instance['post_cat'] = strip_tags( $new_instance['post_cat'] ); $instance['show_num'] = strip_tags( $new_instance['show_num'] ); return $instance; } } ?>
- The topic ‘How Do You Display Excerpts For Each Post In A Recent Custom Post Widget’ is closed to new replies.