Se você estiver usando a REST API nativa do WordPress e precisa fazer uma busca por um campo que está no seu ACF, eis como fazê-lo:
Reativar esse recurso de filters na REST API.
Esse recurso foi removido quando passou a ser nativa do WordPress, então instale e ative o plugin oficial para fazer isso: https://github.com/WP-API/rest-filter
Faça os campos do ACF aparecer na REST API.
Para isso, instale e ative o plugin: ACF to REST API.
Se você estiver usando um custom post_type, tenha certeza de que ele está disponível para ser usar na REST API. Você deve fazer isso no momento de registrar o post_type. (Google It).
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
/** * Add REST API support to an already registered post type. */ add_action( 'init', 'my_custom_post_type_rest_support', 25 ); function my_custom_post_type_rest_support() { global $wp_post_types; //be sure to set this to the name of your post type! $post_type_name = 'experiencias'; 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'; } } |
Insira o seguinte código no seu functions.php:
Esse código vai criar uma variável que vai funcionar na REST API.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
//Se o seu Custom Post é "books", então o seu filter será: rest_books_query = rest_{post_type}_query add_filter( 'rest_query_vars', function ( $valid_vars ) { return array_merge( $valid_vars, array( 'land', 'meta_query' ) ); } ); add_filter( 'rest_books_query', function( $args, $request ) { $land = $request->get_param( 'land' ); if ( ! empty( $land ) ) { $args['meta_query'] = array( array( 'key' => 'land', 'value' => $land, 'compare' => '=', ) ); } return $args; }, 10, 2 ); |
O seu endpont na api será:
/wp-json/wp/v2/books?land=america
Referência: https://github.com/airesvsg/acf-to-rest-api/issues/13