归档-自定义-发布类型按事件日期、ASC和隐藏已完成的事件排序

时间:2013-02-26 作者:cidotcom

我正在为一个个人项目建立一个网站,我通过自定义帖子类型创建了一系列事件。

然后,我需要按照自定义的元值(事件开始日期)和ASC顺序显示这些事件。我已经找到了答案,我使用的代码如下:

/*CUSTOM ARCHIVE FOR EVENTS*/
    function events_pagesize( $query ) {
    // exit out if it\'s the admin or it isn\'t the main query
    if ( is_admin() || ! $query->is_main_query() )
    return;
    // so its not admin, and its the main query, is it the tr-events post archive?
    if ( is_post_type_archive( \'tr-events\' ) ) {
    // it is!! Set the posts_per_page to 6
    $query->set( \'posts_per_page\', 4 );
    $query->set( \'order\' , \'asc\' );
    $query->set( \'meta_key\', \'wpcf-tr-order-date\');
    $query->set( \'orderby\', \'meta_value\');
    return;
    }
    }
    add_action( \'pre_get_posts\', \'events_pagesize\', 1 );
我的问题是如何隐藏超过特定日期的帖子,以及如何创建存档视图以显示已完成的事件?我已经看到很多关于这方面的帖子,大多数选项都会破坏分页。此选项作为函数中的函数。php让我达到了70%。

1 个回复
SO网友:david.binda

我想知道,对于您来说,将日期存储为post meta中的unix时间戳是最简单的,而不是您可以通过小于当前时间的post meta轻松筛选帖子timestamp (或任何其他日期时间戳)。

请参见此示例(不完全了解您的代码,但您会抓住要点:

$args = array(
   \'post_type\' => \'tr-events\',
   \'meta_key\' => \'wpcf-tr-order-date\',
   \'orderby\' => \'meta_value_num\',
   \'order\' => \'ASC\', //DESC, its up to you
   \'meta_query\' => array(
       array(
           \'key\' => \'wpcf-tr-order-date\',
           \'value\' => strtotime(\'now\'),
           \'compare\' => \'<\',
       )
   )
 );
 $query = new WP_Query($args);
正如我提到的,您必须将这段代码重写为$query->set(); 总体安排

结束

相关推荐

归档-自定义-发布类型按事件日期、ASC和隐藏已完成的事件排序 - 小码农CODE - 行之有效找到问题解决它

归档-自定义-发布类型按事件日期、ASC和隐藏已完成的事件排序

时间:2013-02-26 作者:cidotcom

我正在为一个个人项目建立一个网站,我通过自定义帖子类型创建了一系列事件。

然后,我需要按照自定义的元值(事件开始日期)和ASC顺序显示这些事件。我已经找到了答案,我使用的代码如下:

/*CUSTOM ARCHIVE FOR EVENTS*/
    function events_pagesize( $query ) {
    // exit out if it\'s the admin or it isn\'t the main query
    if ( is_admin() || ! $query->is_main_query() )
    return;
    // so its not admin, and its the main query, is it the tr-events post archive?
    if ( is_post_type_archive( \'tr-events\' ) ) {
    // it is!! Set the posts_per_page to 6
    $query->set( \'posts_per_page\', 4 );
    $query->set( \'order\' , \'asc\' );
    $query->set( \'meta_key\', \'wpcf-tr-order-date\');
    $query->set( \'orderby\', \'meta_value\');
    return;
    }
    }
    add_action( \'pre_get_posts\', \'events_pagesize\', 1 );
我的问题是如何隐藏超过特定日期的帖子,以及如何创建存档视图以显示已完成的事件?我已经看到很多关于这方面的帖子,大多数选项都会破坏分页。此选项作为函数中的函数。php让我达到了70%。

1 个回复
SO网友:david.binda

我想知道,对于您来说,将日期存储为post meta中的unix时间戳是最简单的,而不是您可以通过小于当前时间的post meta轻松筛选帖子timestamp (或任何其他日期时间戳)。

请参见此示例(不完全了解您的代码,但您会抓住要点:

$args = array(
   \'post_type\' => \'tr-events\',
   \'meta_key\' => \'wpcf-tr-order-date\',
   \'orderby\' => \'meta_value_num\',
   \'order\' => \'ASC\', //DESC, its up to you
   \'meta_query\' => array(
       array(
           \'key\' => \'wpcf-tr-order-date\',
           \'value\' => strtotime(\'now\'),
           \'compare\' => \'<\',
       )
   )
 );
 $query = new WP_Query($args);
正如我提到的,您必须将这段代码重写为$query->set(); 总体安排

相关推荐