airesvsg / Acf To Rest Api
Projects that are alternatives of or similar to Acf To Rest Api
ACF to REST API
Exposes Advanced Custom Fields Endpoints in the WordPress REST API
https://wordpress.org/plugins/acf-to-rest-api/
- Installation
- Endpoints
- Filters
- Deprecated Filters
- Request API Version
- Field Settings
- Editing the Fields
- Examples
- Get ACF Fields Recursively
- Cache
Installation
- Copy the
acf-to-rest-api
folder into yourwp-content/plugins
folder - Activate the
ACF to REST API
plugin via the plugin admin page
Endpoints
Filters
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' );
} );
Deprecated filters
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 |
Request API version
See below how to select the Request API Version.
- Open the plugins page;
- Click the settings link under the pluing name (
ACF to REST API
); - Select your version in the
ACF to REST API
session; - Click in the button Save changes.
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 );
Field Settings
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' );
After you activate the filters, all your fields should show these options:
Editing the fields
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>
Examples
Sample theme to edit the ACF Fields.
https://github.com/airesvsg/acf-to-rest-api-example
https://github.com/airesvsg/to-do-list-acf-to-rest-api
Get ACF Fields Recursively
https://github.com/airesvsg/acf-to-rest-api-recursive
More details:
-
Issues
-
Pull Request
Cache
Enable caching for WordPress REST API and increase speed of your application.