元查询比较事件日期的问题

时间:2019-03-31 10:33:05

标签: wordpress advanced-custom-fields meta-query

我的自定义帖子事件存在一些问题。我只想显示日期等于或大于今天的事件,但是我的代码不起作用 并正确显示过去和将来的所有事件。

我的代码:

在functions.php中注册自定义帖子类型

function create_posttype() {
register_post_type('event', array(
  'public' => true,
  'has_archive' => false,
  'taxonomies' => array('category'),
  'supports' => array(
        'title', 'editor','thumbnail', 'custom-fields', 'revisions',     'page-attributes', 'post-formats'
    ),
  'menu_icon' => 'dashicons-calendar-alt',
  'rewrite' => array('slug' => 'events'),

  'labels' => array(
  'name' => __( 'Events' ),
  'singular_name' => __( 'Event' ),
        'add_new_item' =>__('Add New Event'),
        'edit_item' =>__('Edit Event'),
        'all_item' =>__('All Events')
       ),
  ));
add_action( 'init', 'create_posttype' );

front-page.php,我要在其中显示我的未来事件:

start_event_date是一个自定义字段(日期选择器), 显示格式:d / m / Y, 返回格式:d / m / Y,

 $today =  date('d/m/Y');
    $argsEvents = array(
     'post_type' => 'event',
     'posts_per_page' => 3,
     'meta_key' => 'start_event_date',
     'orderby' => 'meta_value',
     'order' => 'ASC',
     'meta_query' => array(
         array(
           'key' => 'start_event_date',
            'compare' => '>=',
            'value' => $today,
             'type' => 'datetime'
           )
       )                    
     );

$theEventsPosts = new WP_Query($argsEvents);
    while($theEventsPosts->have_posts()){
      $theEventsPosts->the_post();

//here i have my event-card-post html 
}

我认为代码中的所有内容都是正确的,但仍然行不通。 请给我任何建议。

1 个答案:

答案 0 :(得分:0)

最近我遇到了同样的问题。当我深入研究ACF PRO文档时,我发现返回日期格式与字段日期在数据库中的存储方式无关。实际上,它是Ymd-https://www.advancedcustomfields.com/resources/date-picker/ 这是您应为oneWayDepartureDate使用的值。另外,我在$today中使用了'DATE'类型。

meta_query

$today =  date('Ymd');