WP API 를 사용하여 업데이트에 대한 작은 답변을 드리겠습니다 . API는 코어에서도 WP_Query를 사용할 수 있지만 URL의 get 매개 변수에 대해서는 가능합니다.
게시물 상태에서 콘텐츠를 가져 오는 URL은 다음과 같습니다.
http://example.com/wp-json/posts
익숙한 WP_Query 매개 변수를 사용하여 컨텐츠를 가져 오려면 다음과 같이하십시오.
http://example.com/wp-json/posts?filter[posts_per_page]=2&filter[order]=ASC
URL에서도 모든 매개 변수를 사용하여 사용자 정의 쿼리를 작성할 수 있습니다. 해당 데이터를 가져 오는 방법 WP_Query
이 표준 WordPress 루프에 익숙한 느낌을 알 수 있습니다 . 매개 변수를 지정하지 않으면 기본값 WP_Query
이 사용됩니다.
결과는 json이며 외부 사이트를 구문 분석하고 사용할 수 있습니다.
더 많은 매개 변수 및 설명서 는 API 사이트를 참조하십시오 .
에 대한 업데이트 date_query
API는과 같은 검색어에 대한 결과를 만들 수 없습니다 query_date
. 가능한 모든 매개 변수 는 설명서 를 참조하십시오 .
그러나 새 버전은 며칠, 몇 주 후에 릴리스됩니다. 이 날짜 쿼리의 솔루션에 대한 토론 은이 문제 를 참조하십시오 . 다음과 같이 후크를 통해 사용자 정의 필터를 사용하십시오.
// Allow datequery in /posts filter
add_filter( "json_query_vars", function( $query_args ) {
return array_merge( $query_args,
array( "date_query" => array( array( "after" => "1 week ago" ) ) )
);
} );
에 대한 업데이트 meta_query
API는 기본 WP-Query의이 기능도 사용할 수 없습니다. 그러나 후크를 사용하여이 요구 사항에 맞게 API를 향상시킬 수 있습니다. 또한 여기 작은 예가 있습니다.
add_filter('json_query_var-meta_query', 'add_meta_query', 10, 1);
function add_meta_query( $data ){
$args = array();
$args['relation'] = 'AND';
foreach ( $data as $key => $value ) {
if ( 'relation' === $key ) {
$args['relation'] = $data['relation'];
}
if ( substr($key, 0, 3) === 'key' ) {
$arg_num = substr( $key, 3 );
$args[ (int) $arg_num ][ 'key' ] = $value;
}
if ( substr( $key, 0, 7 ) === 'compare' ) {
$arg_num_comp = substr( $key, 7 );
$args[ (int) $arg_num_comp ][ 'compare' ] = $value;
}
}
return $args;
}
이제 서버에 이미 Wp_query 게시물 필터를 모방하기 위해 JSON을 편안하게 호출 할 수 있습니다.
?filter[meta_query][key]=_newsml_categories_newsstream&filter[meta_query][key2]=homepage&filter[meta_query][relation]=AND&filter[meta_query][compare]=NOT%20EXISTS&filter[meta_query][compare2]=NOT%20EXISTS
이 답변을 기반으로 메타 쿼리 업데이트 .