单击按钮运行 WordPress 查询

mem*_*one 0 php wordpress

我正在尝试寻找实现此功能的最佳方法。我有一些事件,只要它们在日期参数内就会显示,如下所示:

<?php $args = array(
                    'post_type' => 'events',

                    'orderby'   => '_cmb_event_date_timestamp',
                    'meta_key'  => '_cmb_event_date_timestamp',
                    'order'     => 'ASC',
                    'meta_query' => array(
                        array( /* Timestamp query to hide old dates */
                            'key' => '_cmb_event_date_timestamp',
                            'value' => strtotime('today'),
                            'compare' => '>'
                        )
                    ),
                );
                $q = new WP_Query($args);
                $loop = new WP_Query( $args );
                while ( $loop->have_posts() ) : $loop->the_post(); ?>
Run Code Online (Sandbox Code Playgroud)

我有两个按钮:一个说upcoming events,另一个说past events。我想'compare' => '<'past events单击时运行反向查询,但我不知道如何最好地实现此功能。任何实现这一点的建议/方法将不胜感激。我尝试使用 jquery 重新加载,但无法使其工作。

Ale*_*uch 6

您如何获取内容?阿贾克斯?如果不是 - 只需添加特定的 $_GET 参数来链接并在构建 wp 查询时捕获它。例如:

<?php $args = array(
                    'post_type' => 'events',

                    'orderby'   => '_cmb_event_date_timestamp',
                    'meta_key'  => '_cmb_event_date_timestamp',
                    'order'     => 'ASC',
                    'meta_query' => array(
                        array( /* Timestamp query to hide old dates */
                            'key' => '_cmb_event_date_timestamp',
                            'value' => strtotime('today'),
                            'compare' => '>'
                        )
                    ),
                );

                if (isset($_GET['past_events'])) {
                  $args['meta_query'][0]['compare'] = '<';
                }

                $q = new WP_Query($args);
                $loop = new WP_Query( $args );
                while ( $loop->have_posts() ) : $loop->the_post(); ?>
Run Code Online (Sandbox Code Playgroud)

以及链接:

<a href="<?php echo esc_attr( add_query_arg( 'past_events', '' ) ); ?>">past events</a>  
Run Code Online (Sandbox Code Playgroud)