In the documentation for /posts for WordPress REST API it states that I can add a meta
-field. But it doesn’t say which format that should be in.
I can find other guides showing how it should be if using Postman:
data = { "title": "test", "content": "testingfrompython", "status": "draft", "author": 1, "meta": { "location": "NYC", "date": "never", "event_url": "http: //google.com" }, "featured_media": 1221 }
But how should it be setup, if I’m call the endpoint using PHP and cURL?
This here works for just creating a post:
$ data = [ 'title' => 'Test post', 'status' => 'draft', 'content' => 'Some content', ]; $ data_string = json_encode( $ data ); $ endpoint = 'https://example.org/wp-json/wp/v2/posts'; $ protocol = "POST"; $ headers = [ 'Content-Type: application/json', 'Content-Length: ' . strlen($ data_string) 'Authorization: Basic ' . base64_encode( 'MYUSERSEMAIL:APPLICATIONPASSWORD' ) ]; $ ch = custom_setup_curl_function( $ endpoint, $ protocol, $ data_string, $ headers ); $ result = json_decode( curl_exec($ ch) );
I’ve tried all kind of things:
Attempt1
$ data = [ 'title' => 'Test post', 'status' => 'draft', 'content' => 'Some content', 'meta' => [ 'my_custom_field' => 'Testing 1234' ] ];
Attempt2
$ data = [ 'title' => 'Test post', 'status' => 'draft', 'content' => 'Some content', 'meta' => [ [ 'key' => 'my_custom_field', 'value' => 'Testing 1234' ] ] ];
… And I could keep going. Every time it simply creates a post, but doesn’t add any of the meta-data to my created custom fields.
I don’t get why this is not stated in the documentation for the REST API.