WP API Media create() 所需参数

Posted

技术标签:

【中文标题】WP API Media create() 所需参数【英文标题】:WP API Media create() required parameters 【发布时间】:2017-09-25 12:21:42 【问题描述】:

我正在尝试使用 WP API v2 (WP 4.7.3) 发出发布/上传新媒体的请求。我正在使用 Node 客户端 (https://github.com/WP-API/node-wpapi) 来处理这个问题。

由于我只收到错误 400 rest_upload_no_data,因此我正在尝试查找执行此操作所需的字段。

我在做什么:

wp.media()
        .file( uri )
        .create(
            title: 'My awesome image',
            alt_text: 'an image of something awesome',
            caption: 'This is the caption text',
            description: 'More explanatory information',
            status: 'publish'
        )
        .then(function( response ) 
          ...

我查看了文档 (https://developer.wordpress.org/rest-api/reference/media/),但看不到需要或不需要哪个参数。

有什么帮助吗?

【问题讨论】:

【参考方案1】:

问题可能是.file() 方法需要缓冲区或本地文件系统路径(如果在节点中运行)或来自输入字段的文件对象(在浏览器中运行时)。 URI 字符串不能解释为图像,因此没有发送图像数据,导致“无数据”错误。

如果您在浏览器中运行此库,则可以使用输入的 files 对象发送图像:

var data = document.getElementById( 'file-input' ).files[0];
wp.media().file( data )...

WordPress REST API(据我所知)不支持侧载图像,因此要上传远程图像,您首先必须检索它,然后自己将该数据转发到 API。

编辑后包含指向 node-wpapi 库文件上传文档的链接:

http://wp-api.org/node-wpapi/guides/2016/08/15/create-a-post-with-featured-media.html#client-side-media-handling http://wp-api.org/node-wpapi/using-the-client/#uploading-media

【讨论】:

我实际上已经完成了所有这些。进一步挖掘这个问题,我正在考虑 React Native 环境中的超级代理问题。我在那里打开了一个问题:github.com/visionmedia/superagent/issues/1217

以上是关于WP API Media create() 所需参数的主要内容,如果未能解决你的问题,请参考以下文章

在用户注册时显示失败的wp_remote_post

禁用 WP REST API 的默认路由

php WP-Media Library文件维度列

php WP-Media Library文件大小列

wp.​​media multiple:true 设置在自定义插件中不起作用

wordpress rest api 授权