wordpress restful api 自动化发图文之环境配置
本帖最后由 邪恶的拖把 于 2022-7-20 09:32 编辑1、 安装lamp,Nginx很难设置,使用Apache
2、安装完wordpress之后,点击控制面板上的Settings——》点击Permalinks——》选择 Postname
就像这样
3、配置SSL,只有https才可开启Application Password
4、点击控制面板上的Users——》点击Profile——》拉到最底New Application Password Name框框中随便输入名字然后点击 Add New Application Password,就像下面这样,记得保存密码,此密码不可二次查看
5、到网站根目录/www/wwwroot/www.yourwebsite.com ,有一个.htaccess文件, 用vi加入下面这句话
RewriteRule .* -
6、查看Apache配置文件/www/server/apache/conf/httpd.conf 搜索AllowOverride None, 改成AllowOverride All,正常情况下系统会自动配置好这一步。
7、测试一下, 浏览器输入https://www.yourwebsite.com/wp-json/wp/v2/posts ,正常工作会显示json
8、如果一切顺利的话,我们来尝试一下发布一篇文章吧
url = "https://yourwebsite.com/wp-json/wp/v2"
user = "your-username"
password = "your-application-password"
credentials = user + ':' + password
token = base64.b64encode(credentials.encode())
header = {'Authorization': 'Basic ' + token.decode('utf-8')}
post = {
'title' : 'Hello World',
'status' : 'publish',
'content': 'This is my first post created using rest API',
'categories': 5, // category ID
'featured_media': imageID,#注意这个字段
}
responce = requests.post(url , headers=header, json=post)
print(responce.text)
由于我们要发布的是图文,而不是纯文字, featured_media 字段可以帮助我们添加图片, 必须先将图片上传至服务器,再返回图片ID, 将ID赋给featured_media 字段,但是由于此方法过于垃圾,文章中并不能显示图片,完全不能满足我们混合图文的需求,所以不再赘述细节。 我们可以选择这样操作:
直接将图片链接赋给 content字段,就像这样 "content": "<img src=\"http://www.yourwebsite.com/wp-content/uploads/2022/07/659d51c01abe598f4e51504535773d76.jpg\" />" 请注意它的写法,这样图片就会出现在我们的文章中了。
那我们怎么获得wordpress 媒体库中的图片链接呢?
media = {
'file': open("D:/imagelib_cover_img/71341cefbdef373b2a5ae03960215b61.jpg", 'rb'),
}
image = requests.post(url + '/media', headers=headers, files=media)
print(str(json.loads(image.content)['link']))
先上传张图片,再返回图片的link,还有很多字段可以查看,通过拼装字段就可以知道图片的地址。关于更多字段可以参考:
https://developer.wordpress.org/rest-api/reference/posts/
最后如果post方法出现401错误,不妨将Application password 更换一下,再做尝试。
出现401错误 可能是权限问题或者用户名密码错误
404错误是请求的连接写错了
出现错误多问谷老师;P 大佬这个不错,昨天刚使用了wordpress的xmlrpc来进行入库。早点知道有这个restful api 就用这个了。:dizzy:
如果文章数量是十万级的,速度会怎么样? newcb 发表于 2022-7-20 15:24
如果文章数量是十万级的,速度会怎么样?
建议使用 sql 入库,速度比api 快多了 newcb 发表于 2022-7-20 15:24
如果文章数量是十万级的,速度会怎么样?
十万不多啊 billwong 发表于 2022-7-21 08:43
建议使用 sql 入库,速度比api 快多了
sql 不是麻烦嘛 采集后 wp 推送?
如果针对采集,预处理图片路径直接上传文件夹,量大sql入库最快,发布日期预设就自动有新文章了,一次搞定。 这个是什么语言啊,PHP吗? newcb 发表于 2023-1-16 19:59
这个是什么语言啊,PHP吗?
大蟒蛇 python 有用,感谢
页:
[1]