たとえば、「real_estate」post_typeと「5人以上」の容量からの投稿をwordpressから取得するために、WP APIのカスタムエンドポイントを作成しています。
新しいカスタム エンドポイントを作成しました。
// permite que meta_key e meta_value
// sejam filtrados pela api
function filtros( $valid_vars ) {
$valid_vars = array_merge(
$valid_vars,
array(
'meta_key',
'meta_value' ) );
return $valid_vars;
}
add_filter( 'rest_query_vars', 'filtros' );
// funcção que retorna posts do autor
function busca( $data ) {
$posts = get_posts(array(
'post_type' => 'imoveis',
'posts_per_page' => '1000',
'meta_query' => array(
'relation' => 'AND',
array(
'key' => 'transacao',
'value' => $data['tipo']
),
array(
'key' => 'quartos',
'value' => $data['quartos'],
'compare' => '>'
)
)
));
if ( empty( $posts ) ) {
return new WP_Error( 'sem resultados', 'quartos: ' . $data['quartos'] . ' transacao: '. $data['tipo'], array( 'status' => 404 ) );
}
return $posts;
}
// cria o endpoint que ira receber a função acima
add_action( 'rest_api_init', function () {
register_rest_route( 'busca/v2', '/resultado/(?P<tipo>.+)/(?P<quartos>\d+)',
array(
'methods' => 'GET',
'callback' => 'busca',
)
);
});
検索は問題なく機能しており、トランザクションの種類 (販売または賃貸) と各不動産の部屋数でフィルタリングしています。
しかし、私の JSON 応答には、ACF を含む多くのフィールドがありません。元: {
"ID":149, "post_author":"2", "post_date":"2016-03-03 23:53:39", "post_date_gmt":"2016-03-03 23:53:39", "post_content" ":"", "post_title":"この機会に", "post_excerpt":"", "post_status":"publish", "comment_status":"closed", "ping_status":"closed", "post_password": "", "post_name":"oportunidade-do-ano", "to_ping":"", "pinged":"", "post_modified":"2016-03-03 23:53:39", "post_modified_gmt":"2016-03-03 23:53:39", "post_content_filtered":"", "post_parent":0, "guid":"http://raphaelk.co/api/?post_type=imoveis&p=149"," menu_order":0, "post_type":"imoveis", "post_mime_type":"", "comment_count":"0", "filter":"raw" },"0", "フィルター":"生" },"0", "フィルター":"生" },
どうすればその応答を変更できますか?そしてそれにACFを含めます。
ありがとうございました