查看3个未来帖子的列表,从最近到最远

时间:2018-03-22 作者:resunoiz

对于我的俱乐部网站,我有一个即将举行的活动列表。每一个活动都有它发生的日期,所以我会把它归档。

我已经准备好了通过功能查看未来帖子的网站。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" />&nbsp;<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;

  • 1 个回复
    SO网友:Pat J

    您应该可以通过请求future 地位

    $args = array(
        \'post_type\'       => \'post\',
        \'post_status\'     => \'future\',
        \'posts_per_page\'  => 3,
        \'orderby\'         => \'date\',
        \'order\'           => \'ASC\',
    );
    $future_posts = new WP_Query( $args );
    
    参考文献WP_Query

    结束