Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cocoa/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Wordpress多功能活动日历:仅显示即将到来的活动_Wordpress_Plugins_All In One Event Calendar - Fatal编程技术网

Wordpress多功能活动日历:仅显示即将到来的活动

Wordpress多功能活动日历:仅显示即将到来的活动,wordpress,plugins,all-in-one-event-calendar,Wordpress,Plugins,All In One Event Calendar,我正在使用此处找到的“一体式”活动日历: 我试图使用WP_Query()函数仅显示即将发生的事件(因此没有过去的事件)。我看到数据库中有一个“wp_ai1ec_events”表和一个名为“start”的列,其开始时间为yyyy-mm-dd hh:mm:ss格式。我可以使用$currentTime=current\u time('mysql')以相同的格式获取当前时间 到目前为止,我的查询是这样的: $frontpageevents='post_type=ai1ec_event&s

我正在使用此处找到的“一体式”活动日历:
我试图使用WP_Query()函数仅显示即将发生的事件(因此没有过去的事件)。我看到数据库中有一个“wp_ai1ec_events”表和一个名为“start”的列,其开始时间为yyyy-mm-dd hh:mm:ss格式。我可以使用$currentTime=current\u time('mysql')以相同的格式获取当前时间

到目前为止,我的查询是这样的:

    $frontpageevents='post_type=ai1ec_event&showposts=3&orderby=start&order=ASC&meta_value=yes';
$eventquery = new WP_Query($frontpageevents);
我已尝试将“&start>”.$currentTime添加到$frontpageevents声明的末尾,但没有成功。我希望有人知道如何处理这件事。

我在寻找类似的东西。我发现上面的帖子应该有帮助

“事件是发布,但事件开始/结束日期!=发布日期。当您进行查询时,您必须执行事件查询,而不是发布查询。换句话说,您必须使用插件的API来检索按开始或结束日期排序的事件。感兴趣的函数是get_Events_between()。它位于Ai1ec_Calendar_Helper类中。该类位于:app/Helper/class-Ai1ec-Calendar-Helper.php中。我对您的代码进行了一些修改。我没有对其进行测试,因此可能会出现打字错误或其他错误,但逻辑是相同的:

更新

所以我现在真的明白了…这是我设置的代码,用于获取今天到一年后的事件


    global $ai1ec_calendar_helper, $ai1ec_events_helper;

    // gets localized time
    $bits = $ai1ec_events_helper->gmgetdate( $ai1ec_events_helper->gmt_to_local( time() ) );

    //sets start time to today
    $start = gmmktime(0,0,0,$bits['mon'],$bits['mday'],$bits['year']);

    //sets end time to a year from today i.e. $bits['year']+1
    $end = gmmktime(0,0,0,$bits['mon'],$bits['mday'],$bits['year']+1);

    //Look in class-ai1ec-calendar-helper.php for details
    $get_events = $ai1ec_calendar_helper->get_events_between($start,$end);

    //loop through results to get post_ids
    foreach($get_events as $event ):
        $post_ids[] = $event->post_id;
    endforeach;

    // The New Events Query
    $args = array(
        'posts_per_page'  => 4,
        'paged' => get_query_var('paged'),
        'post_type'=> 'ai1ec_event',
        'post__in' => $post_ids
    );

    $events_added = new WP_Query( $args );

    // The Loop
    while ( $events_added->have_posts() ) : $events_added->the_post();
        $event = Ai1ec_Events_Helper::get_event($post->ID);
        //Your code here
    endwhile;
    wp_reset_postdata();
您还可以将函数get_events_relative_to()与参数一起用于开始时间、结果数量限制、页面偏移量(在ai1ec视图中使用的页面偏移量与wp分页不同)和过滤器……它返回事件对象的多维数组。我必须创建$events=$get_events['events'],并在我的foreach中使用$events来正确检索post_id。

我浏览了ai1ec主题,找到了如何显示事件数据的示例。
echo apply_过滤器('the_content',$event->post->post_content)

返回HTML格式的事件信息,如单个事件页面中显示的内容。

按开始日期,$post\u ID数组已按顺序排列。在$args变量中添加'orderby'=>'post\uu In'

 $args = array(
        'posts_per_page'  => 4,
        'paged' => get_query_var('paged'),
        'post_type'=> 'ai1ec_event',
        'post__in' => $post_ids,
        'orderby' => 'post__in'
    );

我试着用那个代码。事件以正确的时间段显示,但以错误的开始时间顺序显示(但以发布日期顺序显示)