使用REST API将媒体上传到WordPress

dtcbnfnu  于 2023-06-21  发布在  WordPress
关注(0)|答案(3)|浏览(210)

如何在WordPress中使用REST API上传媒体图像或功能图像。
我已经创建了新的职位使用WordPress的REST API,现在我上传图像到我的WordPress网站使用REST API,但我无法实现它,由于错误“无数据提供”请检查截图

这是最好的方式来创建新的文章在WordPress的特色图像,现在在我的脑海中
1.上传媒体文件到WordPress网站并获取媒体ID
1.使用媒体ID创建新帖子

n9vozmp4

n9vozmp41#

你几乎是对的,只是缺少media(image) raw binary data
对于python,使用代码:

import requests

toUploadImagePath = "/xxx/xxx.jpg"
mediaImageBytes = open(toUploadImagePath, 'rb').read()
# b'\xff\xd8\xff\xe0\x00\x10JFIF\x00\x01\x01\.....'

uploadImageFilename = "661b943654f54bd4b2711264eb275e1b.jpg"
curHeaders = {
  "Authorization": "Bearer xxx.yyy.zzz-xxx-yyy-zzz",
  "Content-Type": "image/jpeg",
  "Accept": "application/json",
  'Content-Disposition': "attachment; filename=%s" % uploadImageFilename,
}

resp = requests.post(
  "https://www.crifan.com/wp-json/wp/v2/media",
  headers=curHeaders,
  data=mediaBytes,
)

完整的代码可以参考我的库:crifanWordpress.py
我的中文【已解决】用Python通过WordPress的REST API上传图片(将在不久的将来发布)

nr9pn0ug

nr9pn0ug2#

使用REST API将文件上传到WordPress非常简单。你所需要做的就是在POST请求中将文件发送到wp/v2/media路由。

UPDATED新增数据响应true

$file = file_get_contents( 'test.jpg' );
$url = 'http://example.com/wp-json/wp/v2/media/';
$ch = curl_init();
$username = 'admin';
$password = 'password';

curl_setopt( $ch, CURLOPT_URL, $url );
curl_setopt( $ch, CURLOPT_POST, 1 );
curl_setopt( $ch, CURLOPT_POSTFIELDS, $file );
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt( $ch, CURLOPT_HTTPHEADER, [
    'Content-Disposition: form-data; filename="example.jpg"',
    'Authorization: Basic ' . base64_encode( $username . ':' . $password ),
] );
$result = curl_exec( $ch );
curl_close( $ch );
print_r( json_decode( $result ) );

更多https://gist.github.com/ahmadawais/0ccb8a32ea795ffac4adfae84797c19a

jm2pwxwz

jm2pwxwz3#

我也是来寻找答案的。但我最终混合并匹配了PHP和Nodejs。@user1805543的答案是我的php代码(谢谢你的人).我从$result返回了id。(记住json_decode($result, true))剩下要做的就是向运行php的地方发出get请求-localhost:YOUR_PORT
我在我的例子中使用了axios,所以在回调中我收到了id,然后我继续为新的blog文章发出post请求,并将id作为featured_media提供

相关问题