对于我的俱乐部网站,我有一个即将举行的活动列表。每一个活动都有它发生的日期,所以我会把它归档。
我已经准备好了通过功能查看未来帖子的网站。php。如果在存档中调用,它会按时间顺序正确显示我的所有事件。php
在我的主页中,我想显示next 3 events coming: 第一个未来事件的列表,然后是接下来的两个近期事件。
EXAMPLE 2018年,我在2月、4月、5月、6月和10月举办了一次活动。
如果我今天(3月)访问该网站,我希望主页显示4月、5月和6月的活动
4月访问该网站li希望该网站显示5月、6月和10月的活动我怎样才能得到它?
THE CODE
if ( ! class_exists( \'Business_Club_Latest_News_Widget\' ) ) :
/**
* Latest news widget class.
*
* @since 1.0.0
*/
class Business_Club_Latest_News_Widget extends WP_Widget {
/**
* Constructor.
*
* @since 1.0.0
*/
function __construct() {
$opts = array(
\'classname\' => \'business_club_widget_latest_news\',
\'description\' => esc_html__( \'Latest News Widget. Displays latest posts in grid.\', \'business-club\' ),
\'customize_selective_refresh\' => true,
);
parent::__construct( \'business-club-latest-news\', esc_html__( \'BC: Latest News\', \'business-club\' ), $opts );
}
/**
* Echo the widget content.
*
* @since 1.0.0
*
* @param array $args Display arguments including before_title, after_title,
* before_widget, and after_widget.
* @param array $instance The settings for the particular instance of the widget.
*/
function widget( $args, $instance ) {
$title = apply_filters( \'widget_title\', empty( $instance[\'title\'] ) ? \'\' : $instance[\'title\'], $instance, $this->id_base );
$subtitle = ! empty( $instance[\'subtitle\'] ) ? $instance[\'subtitle\'] : \'\';
$post_category = ! empty( $instance[\'post_category\'] ) ? $instance[\'post_category\'] : 0;
$post_column = ! empty( $instance[\'post_column\'] ) ? $instance[\'post_column\'] : 4;
$featured_image = ! empty( $instance[\'featured_image\'] ) ? $instance[\'featured_image\'] : \'business-club-thumb\';
$post_number = ! empty( $instance[\'post_number\'] ) ? $instance[\'post_number\'] : 4;
$excerpt_length = ! empty( $instance[\'excerpt_length\'] ) ? $instance[\'excerpt_length\'] : 0;
$more_text = ! empty( $instance[\'more_text\'] ) ? $instance[\'more_text\'] : \'\';
echo $args[\'before_widget\'];
// Display widget title.
if ( $title ) {
echo $args[\'before_title\'] . $title . $args[\'after_title\'];
}
// Display widget subtitle.
if ( $subtitle ) {
echo \'<h3 class="subtitle">\' . esc_html( $subtitle ) . \'</h3>\';
}
$qargs = array(
\'posts_per_page\' => esc_attr( $post_number ),
\'no_found_rows\' => true,
\'ignore_sticky_posts\' => true,
);
if ( absint( $post_category ) > 0 ) {
$qargs[\'cat\'] = absint( $post_category );
}
$the_query = new WP_Query( $qargs );
?>
<?php if ( $the_query->have_posts() ) : ?>
<div class="latest-news-widget latest-news-col-<?php echo esc_attr( $post_column ); ?>">
<div class="inner-wrapper">
<?php while ( $the_query->have_posts() ) : $the_query->the_post(); ?>
<div class="latest-news-item">
<div class="latest-news-wrapper">
<?php if ( \'disable\' !== $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( $featured_image ), $img_attributes );
?>
</a>
</div><!-- .latest-news-thumb -->
<div class="latest-news-meta">
<span class="posted-on"><?php the_time( get_option( \'date_format\' ) ); ?></span>
<?php
if ( comments_open( get_the_ID() ) ) {
echo \'<span class="comments-link">\';
comments_popup_link( \'<span class="leave-reply">\' . esc_html__( \'0 Comment\', \'business-club\' ) . \'</span>\', esc_html__( \'1 Comment\', \'business-club\' ), esc_html__( \'% Comments\', \'business-club\' ) );
echo \'</span>\';
}
?>
</div><!-- .latest-news-meta -->
<?php endif; ?>
<div class="latest-news-text-wrap">
<h3 class="latest-news-title">
<a href="<?php the_permalink(); ?>"><?php the_title(); ?></a>
</h3>
<?php if ( absint( $excerpt_length ) > 0 ) : ?>
<div class="latest-news-summary">
<?php
$excerpt = business_club_get_the_excerpt( absint( $excerpt_length ) );
echo wp_kses_post( wpautop( $excerpt ) );
?>
</div><!-- .latest-news-summary -->
<?php endif; ?>
<?php if ( ! empty( $more_text ) ) : ?>
<div class="latest-news-read-more">
<a href="<?php the_permalink(); ?>" class="read-more"><?php echo esc_html( $more_text ); ?></a>
</div>
<?php endif; ?>
</div><!-- .latest-news-text-wrap -->
</div><!-- .latest-news-wrapper -->
</div><!-- .latest-news-item -->
<?php endwhile; ?>
</div><!-- .inner-wrapper -->
</div><!-- .latest-news-widget -->
<?php wp_reset_postdata(); ?>
<?php endif; ?>
<?php
echo $args[\'after_widget\'];
}
/**
* Update widget instance.
*
* @since 1.0.0
*
* @param array $new_instance New settings for this instance as input by the user.
* @param array $old_instance Old settings for this instance.
* @return array Settings to save or bool false to cancel saving.
*/
function update( $new_instance, $old_instance ) {
$instance = $old_instance;
$instance[\'title\'] = sanitize_text_field( $new_instance[\'title\'] );
$instance[\'subtitle\'] = sanitize_text_field( $new_instance[\'subtitle\'] );
$instance[\'post_category\'] = absint( $new_instance[\'post_category\'] );
$instance[\'post_number\'] = absint( $new_instance[\'post_number\'] );
$instance[\'post_column\'] = absint( $new_instance[\'post_column\'] );
$instance[\'excerpt_length\'] = absint( $new_instance[\'excerpt_length\'] );
$instance[\'featured_image\'] = sanitize_text_field( $new_instance[\'featured_image\'] );
$instance[\'more_text\'] = sanitize_text_field( $new_instance[\'more_text\'] );
return $instance;
}
/**
* Output the settings update form.
*
* @since 1.0.0
*
* @param array $instance Current settings.
*/
function form( $instance ) {
// Defaults.
$instance = wp_parse_args( (array) $instance, array(
\'title\' => \'\',
\'subtitle\' => \'\',
\'post_category\' => \'\',
\'post_column\' => 4,
\'featured_image\' => \'business-club-thumb\',
\'post_number\' => 4,
\'excerpt_length\' => 40,
\'more_text\' => esc_html__( \'Read more\', \'business-club\' ),
) );
?>
<p>
<label for="<?php echo esc_attr( $this->get_field_id( \'title\' ) ); ?>"><?php esc_html_e( \'Title:\', \'business-club\' ); ?></label>
<input class="widefat" id="<?php echo esc_attr( $this->get_field_id( \'title\' ) ); ?>" name="<?php echo esc_attr( $this->get_field_name( \'title\' ) ); ?>" type="text" value="<?php echo esc_attr( $instance[\'title\'] ); ?>" />
</p>
<p>
<label for="<?php echo esc_attr( $this->get_field_id( \'subtitle\' ) ); ?>"><?php esc_html_e( \'Subtitle:\', \'business-club\' ); ?></label>
<input class="widefat" id="<?php echo esc_attr( $this->get_field_id( \'subtitle\' ) ); ?>" name="<?php echo esc_attr( $this->get_field_name( \'subtitle\' ) ); ?>" type="text" value="<?php echo esc_attr( $instance[\'subtitle\'] ); ?>" />
</p>
<p>
<label for="<?php echo esc_attr( $this->get_field_id( \'post_category\' ) ); ?>"><?php esc_html_e( \'Select Category:\', \'business-club\' ); ?></label>
<?php
$cat_args = array(
\'orderby\' => \'name\',
\'hide_empty\' => true,
\'taxonomy\' => \'category\',
\'name\' => $this->get_field_name( \'post_category\' ),
\'id\' => $this->get_field_id( \'post_category\' ),
\'selected\' => $instance[\'post_category\'],
\'show_option_all\' => esc_html__( \'All Categories\',\'business-club\' ),
);
wp_dropdown_categories( $cat_args );
?>
</p>
<p>
<label for="<?php echo esc_attr( $this->get_field_id( \'post_number\' ) ); ?>"><?php esc_html_e( \'Number of Posts:\', \'business-club\' ); ?></label>
<input id="<?php echo esc_attr( $this->get_field_id( \'post_number\' ) ); ?>" name="<?php echo esc_attr( $this->get_field_name( \'post_number\' ) ); ?>" type="number" value="<?php echo esc_attr( $instance[\'post_number\'] ); ?>" min="1" max="20" />
</p>
<p>
<label for="<?php echo esc_attr( $this->get_field_id( \'post_column\' ) ); ?>"><?php esc_html_e( \'Number of Columns:\', \'business-club\' ); ?></label>
<?php
$dropdown_args = array(
\'id\' => $this->get_field_id( \'post_column\' ),
\'name\' => $this->get_field_name( \'post_column\' ),
\'selected\' => $instance[\'post_column\'],
);
business_club_render_select_dropdown( $dropdown_args, \'business_club_get_numbers_dropdown_options\', array( \'min\' => 3, \'max\' => 4 ) );
?>
</p>
<p>
<label for="<?php echo esc_attr( $this->get_field_id( \'featured_image\' ) ); ?>"><?php esc_html_e( \'Select Image Size:\', \'business-club\' ); ?></label>
<?php
$dropdown_args = array(
\'id\' => $this->get_field_id( \'featured_image\' ),
\'name\' => $this->get_field_name( \'featured_image\' ),
\'selected\' => $instance[\'featured_image\'],
);
business_club_render_select_dropdown( $dropdown_args, \'business_club_get_image_sizes_options\', array( \'add_disable\' => false ) );
?>
</p>
<p>
<label for="<?php echo esc_attr( $this->get_field_id( \'excerpt_length\' ) ); ?>"><?php esc_html_e( \'Excerpt Length:\', \'business-club\' ); ?></label>
<input id="<?php echo esc_attr( $this->get_field_id( \'excerpt_length\' ) ); ?>" name="<?php echo esc_attr( $this->get_field_name( \'excerpt_length\' ) ); ?>" type="number" value="<?php echo esc_attr( $instance[\'excerpt_length\'] ); ?>" min="0" max="200" /> <small><?php esc_html_e( \'in words\', \'business-club\' ); ?></small>
</p>
<p>
<label for="<?php echo esc_attr( $this->get_field_id( \'more_text\' ) ); ?>"><?php esc_html_e( \'Read More Text:\', \'business-club\' ); ?></label>
<input class="widefat" id="<?php echo esc_attr( $this->get_field_id( \'more_text\' ) ); ?>" name="<?php echo esc_attr( $this->get_field_name( \'more_text\' ) ); ?>" type="text" value="<?php echo esc_attr( $instance[\'more_text\'] ); ?>" />
</p>
<?php
}
}
endif;