WP_REST_Posts_Controller에서 상속하는 사용자 정의 게시 유형을 사용하고 있지만 acf 필드를 기반으로 날짜를 쿼리해야합니다. Yikes!WP-API 특정 날짜 이후에 게시물 받기
엔드 포인트에 Params
/wp-json/wp/v2/almanac_entry?per_page=3&filter[orderby]=acf_almanac_date&after=2016-12-23T00:00:00&filter[date_query[column]]=acf_almanac_date
답변서
응답은 세 가지 항목을 반환하지만 날짜 만 나열 후 두 사람은 두 가지를해야하고, 세 번째는 앞에있는 날짜가 나열됩니다.
- 2016-12-31T00 : 00 : 00 : 00
- 2016-12-24T00 : 00 : 00
- 2016-12-17T00 : 00 : 00 아래는
acf_almanac_date
필드의 세 가지 항목의 값은 (이 날짜는 날짜 이전입니다 2016-12-23T00 : 00 : 00 및 반환되어 있어야합니다)
코드
작업은 등록과 같은 :
add_action('init', 'register_custom_post_types');
function register_custom_post_types() {
global $wp_post_types;
$post_type_name = 'almanac_entry';
if(isset($wp_post_types[ $post_type_name ])) {
$wp_post_types[$post_type_name]->show_in_rest = true;
$wp_post_types[$post_type_name]->rest_base = $post_type_name;
$wp_post_types[$post_type_name]->rest_controller_class = 'WP_REST_Posts_Controller';
}
}
add_action('rest_api_init', 'wp_rest_add_custom_fields');
function wp_rest_add_custom_fields() {
register_rest_field('almanac_entry', 'acf_almanac_date', array (
'get_callback' => function($object, $field_name, $request) {
return get_post_meta($object[ 'id' ], 'almanac_date', true) . "T00:00:00";
},
'update_callback' => null,
'schema' => null,
));
}
도움을 주시면 감사하겠습니다. 1
계 아마도 상기 PARAM filter[date_query[column]]=acf_almanac_date
가 wp_rest_add_custom_fields
함수에 동적으로 추가되는 필드를 쿼리 acf_almanac_date
WP-API를 가지고 있는지 떠올랐다.
아마도 WP_REST_Posts_Controller를 확장하고 prepare_items_query
함수를 재정의해야 할 필요가 있습니까? 사실이라면 ACF 필드 acf_almanac_date
에 어떻게 연관시킬 수 있습니까? 오우 vey!
감사합니다. 빠른 질문. almanac_date가 '2016-12-31','2016-12-24', '2016-12-17','2016-12-10', '2016-12-03' 및 다음과 같은 5 개의 게시물이있는 경우 '/ wp-json/wp/v2/almanac_entry? almanac_date_after = 2016-12-20T00 : 00 : 00'을 끝낼 때'2016-12-31','2016-12-24' , 그러나 나는 모두 5를 얻는다. 나는 당신이 WP 4.7을 mentoined했다는 것을 안다. 어쩌면 나는 그것을 실행하지 않을 것이다 (나는보아야 할 것이다), 아니면 아마도 나는 param을 놓치고 있는가? :( –
버전 4.6.1을 실행 중입니다. 업데이트해야 할 수도 있습니다. 명시 적으로 4를 호출 한 이후로 문제가 있다고 가정합니다.7, 그리고 WP REST API 버전 2.0-beta15 플러그인을 사용하고있는 것은 아닙니다. –
WordPress 4.7은 12 월 6 일에 출시 될 예정입니다. 베타 테스터 플러그인을 사용하여 지금 출시 후보로 업데이트 할 수 있습니다. https://wordpress.org/plugins/wordpress-beta-tester/ –