-
-
Save MelMacaluso/6c4cb3db5ac87894f66a456ab8615f10 to your computer and use it in GitHub Desktop.
<?php | |
function create_ACF_meta_in_REST() { | |
$postypes_to_exclude = ['acf-field-group','acf-field']; | |
$extra_postypes_to_include = ["page"]; | |
$post_types = array_diff(get_post_types(["_builtin" => false], 'names'),$postypes_to_exclude); | |
array_push($post_types, $extra_postypes_to_include); | |
foreach ($post_types as $post_type) { | |
register_rest_field( $post_type, 'ACF', [ | |
'get_callback' => 'expose_ACF_fields', | |
'schema' => null, | |
] | |
); | |
} | |
} | |
function expose_ACF_fields( $object ) { | |
$ID = $object['id']; | |
return get_fields($ID); | |
} | |
add_action( 'rest_api_init', 'create_ACF_meta_in_REST' ); |
I appreciate you sharing this approach! However, I am getting a "null" return in the REST field
"ACF": null
Any suggestions? Thanks so much!
Can someone help me out here? Why is ['acf-field-group','acf-field']
the value for $postypes_to_exclude = ['acf-field-group','acf-field']
?
Can someone help me out here? Why is
['acf-field-group','acf-field']
the value for$postypes_to_exclude = ['acf-field-group','acf-field']
?
Hi there, because is the array of post_types to exclude that can be expanded as needed, if you don't do that (comment it out or make it an empty array) check what happens :)
Hi, i need help because i have two fields in my post, but my response it empty or null
[ { "id": 1, "date": "2022-06-28T13:10:06", "date_gmt": "2022-06-28T13:10:06", "guid": { "rendered": "http://localhost/mensageria/?p=1" }, "modified": "2022-06-28T21:02:01", "modified_gmt": "2022-06-28T21:02:01", "slug": "hello-world", "status": "publish", "type": "post", "link": "http://localhost/mensageria/2022/06/28/hello-world/", "title": { "rendered": "Hello world!" }, "content": { "rendered": "\n<p>Welcome to WordPress. This is your first post. Edit or delete it, then start writing!</p>\n", "protected": false }, "excerpt": { "rendered": "Welcome to WordPress. This is your first post. Edit or delete it, then start writing!", "protected": false }, "author": 1, "featured_media": 0, "comment_status": "open", "ping_status": "open", "sticky": false, "template": "", "format": "standard", "meta": [], "categories": [ 1 ], "tags": [], "acf": [], "_links": { "self": [ { "href": "http://localhost/mensageria/wp-json/wp/v2/posts/1" } ], "collection": [ { "href": "http://localhost/mensageria/wp-json/wp/v2/posts" } ], "about": [ { "href": "http://localhost/mensageria/wp-json/wp/v2/types/post" } ], "author": [ { "embeddable": true, "href": "http://localhost/mensageria/wp-json/wp/v2/users/1" } ], "replies": [ { "embeddable": true, "href": "http://localhost/mensageria/wp-json/wp/v2/comments?post=1" } ], "version-history": [ { "count": 4, "href": "http://localhost/mensageria/wp-json/wp/v2/posts/1/revisions" } ], "predecessor-version": [ { "id": 13, "href": "http://localhost/mensageria/wp-json/wp/v2/posts/1/revisions/13" } ], "wp:attachment": [ { "href": "http://localhost/mensageria/wp-json/wp/v2/media?parent=1" } ], "wp:term": [ { "taxonomy": "category", "embeddable": true, "href": "http://localhost/mensageria/wp-json/wp/v2/categories?post=1" }, { "taxonomy": "post_tag", "embeddable": true, "href": "http://localhost/mensageria/wp-json/wp/v2/tags?post=1" } ], "curies": [ { "name": "wp", "href": "https://api.w.org/{rel}", "templated": true } ] } } ]
Can someone help me out here? Why is
['acf-field-group','acf-field']
the value for$postypes_to_exclude = ['acf-field-group','acf-field']
?Hi there, because is the array of post_types to exclude that can be expanded as needed, if you don't do that (comment it out or make it an empty array) check what happens :)
Hi, my code is the same problem.
But i forgete this field "Show in REST API" in settings you need set to "YES".
So is done, thanks
I was wondering if there was a way to filter this to only show some of the fields (per post type)?
Thank you
Many thanks for sharing this, It works well but not for the post relations field.
It's return normal post object.
Do you have some solution for this ?