Wordpress ACF поля выбора даты не работают

Я создал "каникулы" custom-post-type в котором есть два пользовательских поля -> "startdate" и "enddate". Очевидно, что оба типа полей - "Выбор даты".

Но по какой-то причине я не знаю, я не могу получить эти поля. Он не возвращает ничего или ноль. В моем 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');

Я не знаю, правильно ли это вообще, так как я хочу, чтобы каждый отпуск_периода (может быть несколько "отпускных" постов) возвращался как 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 ответ

Я думаю, что вы должны сделать это с 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' => '<='
        ) 
    )   
);
Другие вопросы по тегам