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.