我想添加包含精选图片的新帖子,但首先要将图片添加到帖子中。
function add_post($access_key,$blogid,$title,$content,$categories_array,$tags_array,$featuredimage)
{
$options = array (
'http' =>
array (
'ignore_errors' => true,
'method' => 'POST',
'header' =>
array (
0 => 'authorization: Bearer '.$access_key,
1 => 'Content-Type: multipart/form-data',
),
'content' => http_build_query(
array (
'title' => $title,
'content' => $content,
'tags' => $tags_array,
'categories' => $categories_array,
'media'=>$featuredimage,///array($featuredimage),//jak nie zadziala to zapakowac w array
'media[]'=>$featuredimage//array($featuredimage)
)
),
),
);
$context = stream_context_create( $options );
$response = file_get_contents(
"https://public-api.wordpress.com/rest/v1/sites/{$blogid}/posts/new/",
false,
$context
);
$response = json_decode( $response );
return $response;
}
函数体是从示例中复制的,除了添加媒体外工作正常
add_post($_GET['token'],$blog_id,"tytul","tresc",array("cat1"),array("tagt1","tag2"), "http://icons.iconarchive.com/icons/iconka/meow/256/cat-walk-icon.png");
添加帖子而不添加图片
在文件中 http://developer.wordpress.com/docs/api/1/post/sites/ $网站/职位/新/ 我发现只有从控制台添加媒体的代码
curl \
--form 'title=Image' \
--form 'media[]=@/path/to/file.jpg' \
-H 'Authorization: BEARER your-token' \
'https://public-api.wordpress.com/rest/v1/sites/123/posts/new'
并提及表单内容类型
“(...)要上传媒体,整个请求应该是 多部分/格式数据“
但当我将“application / x-www-form-urlencoded”更改为“multipart / form-data”时 ......并没有改变
答案 0 :(得分:2)
该API调用中的media
参数仅用于上传本地图像文件,但您使用外部URL调用它。您应该使用media_urls
参数。相关位from the documentation:
media:要附加到帖子的图像数组。要上传媒体,整个请求应该是多部分/表单数据编码。多 媒体项目将显示在图库中。接受图片(图片/ gif, image / jpeg,image / png)。
Example: curl --form 'title=Image' --form 'media[]=@/path/to/file.jpg' ...
media_urls:要附加到帖子的图片的网址数组。侧载媒体以获得帖子。
您的代码可以更改为:
...
'content' => http_build_query(
array (
'title' => $title,
'content' => $content,
'tags' => $tags_array,
'categories' => $categories_array,
'media_urls' => array($featuredimage)
)
...