Wordpress ACF日期选择器字段不起作用

时间:2018-09-12 15:57:53

标签: php wordpress custom-post-type advanced-custom-fields

我创建了一个“假期” custom-post-type,其中有两个自定义字段->“ startdate”和“ enddate”。字段类型显然都是“日期选择器”。

但是由于某些原因,我不知道,我无法获取这些字段。它不返回任何内容或返回null。 在我的functions.php中,我有这个:

function get_vacation_dates(){
  $startDate = get_field('vacation_start', false, false);
  $endDate = get_field('vacation_end', false, false);

  $start_date = new DateTime($startDate);
  $end_date = new DateTime($endDate);

  $args = array(
    'post_type' => array('ferieperioder'),
    'post_status' => array('publish'),
    'posts_per_page' => -1,
    'post__in' => $post->ID,
     'meta_key' => array(
        'key' => 'vacation_start',
        'value' => $startDate
     ),
     array(
        'key' => 'vacation_end',
        'value' => $endDate
     )      
  );

  $query = new WP_Query($args);

  echo json_encode($query);
  die();
}

add_action('wp_ajax_nopriv_get_vacation_dates', 'get_vacation_dates');
add_action('wp_ajax_get_vacation_dates','get_vacation_dates');

我根本不知道这是否正确,因为我想获取每个Vacation_period(可能有多个“假期”帖子)作为json进行AJAX处理返回。

例如,我想要一个这样的json数组:

[ {
    "vacation_name"  : "summer",
    "vacation_start" : "01-07-2019",
    "vacation_end" : "30-07-2019"
  },
  {
    "vacation_name"  : "winter",
    "vacation_start" : "01-12-2019",
    "vacation_end" : "14-12-2019"
  },
]

或类似的东西...

我该如何实现?

1 个答案:

答案 0 :(得分:0)

我认为您应该使用meta_query来做到这一点:

$args = array(
    'post_type' => array('ferieperioder'),
    'post_status' => array('publish'),
    'posts_per_page' => -1,
    'post__in' => $post->ID,
    'meta_query' => array(
        'relation' => 'AND',
        array(
            'key' => 'vacation_start',
            'value' => $startDate,
            'type' => 'DATE',
            'compare' => '>='
        ),
        array(
            'key' => 'vacation_end',
            'value' => $endDate,
            'type' => 'DATE',
            'compare' => '<='
        ) 
    )   
);