WP REST API如何上传精选图片?

use*_*996 2 rest wordpress

我正在使用WP REST API插件V2(http://wp-api.org/).

API可以上传特色图像并生成相关的元数据吗?

我知道我可以上传图片附件(POST/wp-json/wp/v2/media),然后更新相关文章(PUT/wp-json/wp/v2/posts/ID)并使其"featured_image"关键点到附件ID.

但这是正确的方法吗?

是否可以在上传后生成特色图像的不同(已调整大小)版本,还是需要自定义端点?

pHi*_*HiL 8

我知道我可以上传图片附件(POST/wp-json/wp/v2/media),然后更新相关文章(PUT/wp-json/wp/v2/posts/ID)并使其"featured_image"关键点到附件ID.但这是正确的方法吗?

据我所知,这是可行的方法.WP API文档在解释所有这些方面"有点"缺乏.并且涉及到相当多的挫折,但最终确切地说我是如何使它工作的.

因此,首先将媒体上传到端点POST /wp-json/wp/v2/media,并将以下HTTP标头和文件内容作为数据:

            'CURLOPT_HTTPHEADER' => [
            'Content-type: application/json',
            'Authorization: Basic ' . $base64Credentials,
            'Content-Disposition: attachment; filename="acme.png"'
            ]
Run Code Online (Sandbox Code Playgroud)

这里的问题是Content-Disposition标题.此调用应返回媒体ID,您现在需要进行调用POST /wp-json/wp/v2/posts/{$existingPostId}.

相同的标题,但没有Content-Disposition.这次数据应该是JSON编码的{"featured_media": 156}

(您不必直接使用CURL.只需确保将HTTP标头传入请求)


小智 1

我能够通过上传图像(ionic mobile)创建带有图像ID的帖子。我通过检查 wp-json/wp/v2/posts/id 的 json 响应找到了秘密武器

在数据部分我看到“featured_media”,我读到我需要将“featured_image”设置为一个id,但这不起作用。

所以我尝试在我的帖子中设置“featured_media”值并且它有效。

我尝试了一切,但没有任何效果,直到我尝试了这个。

“post_meta”数组没有任何效果,但我把它留在那里,因为这是他们在我能找到的(稀疏)文档中所说的要做的事情。

这对我有用:

$scope.http({
             method: "POST",
            url: "http://<domain>/wp-json/wp/v2/posts" ,
            headers: { 'Authorization' : 'Basic ' + $scope.au },
            data: {
            title: $scope.postData.title,
            content: $scope.postData.content,
            status: $scope.postData.status,
            featured_media: $scope.imageid,
            post_meta: [
                {
                    "key": "_thumbnail_id",
                    "value":  $scope.imageid
                }] 
            }
Run Code Online (Sandbox Code Playgroud)