Exposes Advanced Custom Fields Endpoints in the WordPress REST API
See the codeExposes Advanced Custom Fields Endpoints in the WordPress REST API
https://wordpress.org/plugins/acf-to-rest-api/
acf-to-rest-api folder into your wp-content/plugins folderACF to REST API plugin via the plugin admin page| Endpoint | READABLE | EDITABLE |
|---|---|---|
| /wp-json/acf/v3/posts π | β | β |
| /wp-json/acf/v3/posts/{id} | β | β |
| /wp-json/acf/v3/posts/{id}/{field-name} | β | β |
| /wp-json/acf/v3/pages π | β | β |
| /wp-json/acf/v3/pages/{id} | β | β |
| /wp-json/acf/v3/pages/{id}/{field-name} | β | β |
| /wp-json/acf/v3/users π | β | β |
| /wp-json/acf/v3/users/{id} | β | β |
| /wp-json/acf/v3/users/{id}/{field-name} | β | β |
| /wp-json/acf/v3/{taxonomy} π | β | β |
| /wp-json/acf/v3/{taxonomy}/{id} π | β | β |
| /wp-json/acf/v3/{taxonomy}/{id}/{field-name} π | β | β |
| /wp-json/acf/v3/comments π | β | β |
| /wp-json/acf/v3/comments/{id} | β | β |
| /wp-json/acf/v3/comments/{id}/{field-name} | β | β |
| /wp-json/acf/v3/media π | β | β |
| /wp-json/acf/v3/media/{id} | β | β |
| /wp-json/acf/v3/media/{id}/{field-name} | β | β |
| /wp-json/acf/v3/{post-type} π | β | β |
| /wp-json/acf/v3/{post-type}/{id} π | β | β |
| /wp-json/acf/v3/{post-type}/{id}/{field-name} π | β | β |
| /wp-json/acf/v3/options/{id} π | β | β |
| /wp-json/acf/v3/options/{id}/{field-name} π | β | β |
| Filter | Argument(s) |
|---|---|
| acf/rest_api/id | mixed ( string, integer, boolean ) $id string $type π string $controller π |
| acf/rest_api/key | string $key WP_REST_Request $request string $type |
| acf/rest_api/item_permissions/get | boolean $permission WP_REST_Request $request string $type |
| acf/rest_api/item_permissions/update | boolean $permission WP_REST_Request $request string $type |
| acf/rest_api/{type}/prepare_item | mixed ( array, boolean ) $item WP_REST_Request $request |
| acf/rest_api/{type}/get_fields | mixed ( array, WP_REST_Request ) $data mixed ( WP_REST_Request, NULL ) $request |
| acf/rest_api/field_settings/show_in_rest π | boolean $show |
| acf/rest_api/field_settings/edit_in_rest π | boolean $edit |
Basic example of how to use the filters, in this case I will set a new permission to get the fields
add_filter( 'acf/rest_api/item_permissions/get', function( $permission ) {
return current_user_can( 'edit_posts' );
} );
| Filter | Argument(s) |
|---|---|
| acf/rest_api/type | string $type |
| acf/rest_api/types | array $types |
| acf/rest_api/default_rest_base | boolean $default string $type |
See below how to select the Request API Version.
ACF to REST API );ACF to REST API session;The other alternative is to define the constant ACF_TO_REST_API_REQUEST_VERSION in your wp-config.php
define( 'ACF_TO_REST_API_REQUEST_VERSION', 2 );
In this version is possible to configure the field options via admin.
The options are enabled using the filters below, by default theses options are disabled.
// Enable the option show in rest
add_filter( 'acf/rest_api/field_settings/show_in_rest', '__return_true' );
// Enable the option edit in rest
add_filter( 'acf/rest_api/field_settings/edit_in_rest', '__return_true' );
The fields should be sent into the key fields.
Action: http://localhost/wp-json/acf/v3/posts/1
<form action="http://localhost/wp-json/acf/v3/posts/1" method="POST">
<?php
// https://developer.wordpress.org/rest-api/using-the-rest-api/authentication/
wp_nonce_field( 'wp_rest' );
?>
<label>Site: <input type="text" name="fields[site]"></label>
<button type="submit">Save</button>
</form>
Action: http://localhost/wp-json/wp/v2/posts/1
<form action="http://localhost/wp-json/wp/v2/posts/1" method="POST">
<?php
// https://developer.wordpress.org/rest-api/using-the-rest-api/authentication/
wp_nonce_field( 'wp_rest' );
?>
<label>Title: <input type="text" name="title"></label>
<h3>ACF</h3>
<label>Site: <input type="text" name="fields[site]"></label>
<button type="submit">Save</button>
</form>
Use the filter acf/rest_api/key to change the key fields.
add_filter( 'acf/rest_api/key', function( $key, $request, $type ) {
return 'acf_fields';
}, 10, 3 );
Now, the fields should be sent into the key acf_fields
<form action="http://localhost/wp-json/acf/v3/posts/1" method="POST">
<?php
// https://developer.wordpress.org/rest-api/using-the-rest-api/authentication/
wp_nonce_field( 'wp_rest' );
?>
<label>Site: <input type="text" name="acf_fields[site]"></label>
<button type="submit">Save</button>
</form>
Sample theme to edit the ACF Fields.
https://github.com/airesvsg/acf-to-rest-api-example
To-do list π
https://github.com/airesvsg/to-do-list-acf-to-rest-api
https://github.com/airesvsg/acf-to-rest-api-recursive
More details:
Issues
Pull Request
Enable caching for WordPress REST API and increase speed of your application.
124 followers Β· starred Aug 2018
257 followers Β· starred Jan 2018
43 followers Β· starred Feb 2017
321 followers Β· starred Feb 2019
Exposes Advanced Custom Fields Endpoints in the WordPress REST API
See the codeExposes Advanced Custom Fields Endpoints in the WordPress REST API
https://wordpress.org/plugins/acf-to-rest-api/
acf-to-rest-api folder into your wp-content/plugins folderACF to REST API plugin via the plugin admin page| Endpoint | READABLE | EDITABLE |
|---|---|---|
| /wp-json/acf/v3/posts π | β | β |
| /wp-json/acf/v3/posts/{id} | β | β |
| /wp-json/acf/v3/posts/{id}/{field-name} | β | β |
| /wp-json/acf/v3/pages π | β | β |
| /wp-json/acf/v3/pages/{id} | β | β |
| /wp-json/acf/v3/pages/{id}/{field-name} | β | β |
| /wp-json/acf/v3/users π | β | β |
| /wp-json/acf/v3/users/{id} | β | β |
| /wp-json/acf/v3/users/{id}/{field-name} | β | β |
| /wp-json/acf/v3/{taxonomy} π | β | β |
| /wp-json/acf/v3/{taxonomy}/{id} π | β | β |
| /wp-json/acf/v3/{taxonomy}/{id}/{field-name} π | β | β |
| /wp-json/acf/v3/comments π | β | β |
| /wp-json/acf/v3/comments/{id} | β | β |
| /wp-json/acf/v3/comments/{id}/{field-name} | β | β |
| /wp-json/acf/v3/media π | β | β |
| /wp-json/acf/v3/media/{id} | β | β |
| /wp-json/acf/v3/media/{id}/{field-name} | β | β |
| /wp-json/acf/v3/{post-type} π | β | β |
| /wp-json/acf/v3/{post-type}/{id} π | β | β |
| /wp-json/acf/v3/{post-type}/{id}/{field-name} π | β | β |
| /wp-json/acf/v3/options/{id} π | β | β |
| /wp-json/acf/v3/options/{id}/{field-name} π | β | β |
| Filter | Argument(s) |
|---|---|
| acf/rest_api/id | mixed ( string, integer, boolean ) $id string $type π string $controller π |
| acf/rest_api/key | string $key WP_REST_Request $request string $type |
| acf/rest_api/item_permissions/get | boolean $permission WP_REST_Request $request string $type |
| acf/rest_api/item_permissions/update | boolean $permission WP_REST_Request $request string $type |
| acf/rest_api/{type}/prepare_item | mixed ( array, boolean ) $item WP_REST_Request $request |
| acf/rest_api/{type}/get_fields | mixed ( array, WP_REST_Request ) $data mixed ( WP_REST_Request, NULL ) $request |
| acf/rest_api/field_settings/show_in_rest π | boolean $show |
| acf/rest_api/field_settings/edit_in_rest π | boolean $edit |
Basic example of how to use the filters, in this case I will set a new permission to get the fields
add_filter( 'acf/rest_api/item_permissions/get', function( $permission ) {
return current_user_can( 'edit_posts' );
} );
| Filter | Argument(s) |
|---|---|
| acf/rest_api/type | string $type |
| acf/rest_api/types | array $types |
| acf/rest_api/default_rest_base | boolean $default string $type |
See below how to select the Request API Version.
ACF to REST API );ACF to REST API session;The other alternative is to define the constant ACF_TO_REST_API_REQUEST_VERSION in your wp-config.php
define( 'ACF_TO_REST_API_REQUEST_VERSION', 2 );
In this version is possible to configure the field options via admin.
The options are enabled using the filters below, by default theses options are disabled.
// Enable the option show in rest
add_filter( 'acf/rest_api/field_settings/show_in_rest', '__return_true' );
// Enable the option edit in rest
add_filter( 'acf/rest_api/field_settings/edit_in_rest', '__return_true' );
The fields should be sent into the key fields.
Action: http://localhost/wp-json/acf/v3/posts/1
<form action="http://localhost/wp-json/acf/v3/posts/1" method="POST">
<?php
// https://developer.wordpress.org/rest-api/using-the-rest-api/authentication/
wp_nonce_field( 'wp_rest' );
?>
<label>Site: <input type="text" name="fields[site]"></label>
<button type="submit">Save</button>
</form>
Action: http://localhost/wp-json/wp/v2/posts/1
<form action="http://localhost/wp-json/wp/v2/posts/1" method="POST">
<?php
// https://developer.wordpress.org/rest-api/using-the-rest-api/authentication/
wp_nonce_field( 'wp_rest' );
?>
<label>Title: <input type="text" name="title"></label>
<h3>ACF</h3>
<label>Site: <input type="text" name="fields[site]"></label>
<button type="submit">Save</button>
</form>
Use the filter acf/rest_api/key to change the key fields.
add_filter( 'acf/rest_api/key', function( $key, $request, $type ) {
return 'acf_fields';
}, 10, 3 );
Now, the fields should be sent into the key acf_fields
<form action="http://localhost/wp-json/acf/v3/posts/1" method="POST">
<?php
// https://developer.wordpress.org/rest-api/using-the-rest-api/authentication/
wp_nonce_field( 'wp_rest' );
?>
<label>Site: <input type="text" name="acf_fields[site]"></label>
<button type="submit">Save</button>
</form>
Sample theme to edit the ACF Fields.
https://github.com/airesvsg/acf-to-rest-api-example
To-do list π
https://github.com/airesvsg/to-do-list-acf-to-rest-api
https://github.com/airesvsg/acf-to-rest-api-recursive
More details:
Issues
Pull Request
Enable caching for WordPress REST API and increase speed of your application.
124 followers Β· starred Aug 2018
257 followers Β· starred Jan 2018
43 followers Β· starred Feb 2017
321 followers Β· starred Feb 2019