python直接发布到网站wordpress之三批量发布图片

在前面的文章中,实现了使用python操作wordpress发布文字内容和图片内容。

python直接发布到网站wordpress之一只发布文字-CSDN博客

python直接发布到网站wordpress之二发布图片-CSDN博客 

不过,此时发布图片的数量只能是一张图片。但在实际应用中,在同一篇wordpress文章中,肯定会有多张图片的情况,本篇就是实现用python操作wordpress批量发布图片到一篇文章中(而不是批量发布多篇文章,每篇文章中各一张图片)。

怎么办呢?经过大量搜索,尤其是查阅python-wordpress-xmlrpc文档,链接如下:

Overview — python-wordpress-xmlrpc 2.3 documentation 

得知关键信息如下,即Upload上传附件(如图片)后,会返回其url:

 

利用这一点,编写批量上传并发布图片代码如下:

from wordpress_xmlrpc import Client, WordPressPost
from wordpress_xmlrpc.methods.posts import NewPost
from wordpress_xmlrpc.methods.media import UploadFile
# from wordpress_xmlrpc.compat import xmlrpc_client
import osimage_content_list=['图片1','图片2','图片3','图片4']
def create_gallery_post(images_folder, wordpress_url, wordpress_username, wordpress_password):# 登录到 WordPressclient = Client(wordpress_url, wordpress_username, wordpress_password)# 创建 WordPress 文章post = WordPressPost()post.title = "批量发布图片"post.content = "终于解决批量上传图片的问题了"post.excerpt = '解决!'# 遍历图片文件夹kk=0for filename in os.listdir(images_folder):if filename.endswith(".jpg") or filename.endswith(".jpeg") or filename.endswith(".png"):image_path = os.path.join(images_folder, filename)# 上传图片到 WordPressdata = {'name': filename,'type': 'image/jpeg',  # 或者其他图片格式}with open(image_path, 'rb') as img:data['bits'] = img.read()response = client.call(UploadFile(data))# response = client.call(client.get_method('wp.uploadFile'), data, img)attachment_id = response['id']img_url = response['url']print(attachment_id)print(img_url)print(type(attachment_id))#<class 'str'># 添加图片内容和图片url到文章内容中post.content +=image_content_list[kk]+'\n'+f'<img src="{img_url}" alt="{filename}" />'kk=kk+1# 发布图库文章到 WordPresspost.post_status = 'publish'client.call(NewPost(post))print("图库文章发布成功!")# 图片文件夹路径
images_folder = './jpg'  # 替换为实际的图片文件夹路径# WordPress 站点信息
wordpress_url = 'http://你的域名.后缀名/xmlrpc.php'
wordpress_username = '你的wordpress的账号名'
wordpress_password = '你的wordpress的账号密码'# 创建图库文章(含多张图片的文章)并发布到 WordPress
create_gallery_post(images_folder, wordpress_url, wordpress_username, wordpress_password)

注:images_folder = './jpg'是与pthon代码.py同目录下的、用于存放本次批量上传发布的图片的文件夹,程序会自动遍历其中的图片类型的文件并操作。 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/7545.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

电脑桌面备忘录在哪里设置?好用的电脑桌面备忘录软件

在日常工作和生活中&#xff0c;电脑桌面备忘录的重要性不言而喻。想象一下&#xff0c;在繁忙的工作中&#xff0c;你能够一眼看到桌面上的备忘录提醒&#xff0c;从而及时完成重要任务&#xff0c;或者在紧张的学习中&#xff0c;通过备忘录快速回顾关键知识点。一款优秀的电…

深入理解MySQL的二进制日志(Binlog)

MySQL的二进制日志&#xff08;binlog&#xff09;是MySQL数据库中一个关键的组件&#xff0c;主要用于记录数据库中所有修改数据或潜在影响数据的语句&#xff0c;以便用于各种重要的数据库操作如复制、数据恢复、审计等。本文将详细介绍MySQL二进制日志的工作原理、配置方法、…

HIVE函数的基本使用

HIVE函数的基本使用 1.查看所有支持的函数 共289个 1)SHOW FUNCTIONS 查看所有支持的函数 共289个 2)SHOW FUNCTIONS LIKE "**" 模糊查询函数名 3)DESC FUNCTION 函数名 可以查看函数的具体使用方法 show functions; show functions like "*c…

7-93 最大连续子序列

给定K个整数的序列{ N1​,N2​,…,NK​ },其任意连续子序列可表示为{ Ni​,Ni+1​,…,Nj​},其中 1≤i≤j≤K。最大连续子序列是所有连续子序列中元素和最大的一个。例如,给定序列{ -2,11,-4,13,-5,-2 },其最大连续子序列为{ 11,-4,13 },最大和为20。 要求编…

JavaScript(五)

JavaScript运算符 JavaScript 提供了多种运算符&#xff0c;用于在代码中执行各种操作。以下是一些主要的 JavaScript 运算符分类及其示例&#xff1a; 1. 算术运算符 加&#xff08;&#xff09;&#xff1a;两个数相加减&#xff08;-&#xff09;&#xff1a;第一个数减去…

IDEA中git的常用操作(保姆级教学)

IDEA中git的常用操作&#xff08;保姆级教学&#xff09; 以下是git的工作原理&#xff0c;觉得繁琐的可以跳过不看 Workspace&#xff1a;工作区 (平时存放代码的地方) Index / Stage&#xff1a;暂存区&#xff08;用于临时存放存放你的改动&#xff0c;事实上就是一个文件&…

华人团队用大模型实现“读心术”:大脑活动直接变文字

NeurIPS收录的一项新研究&#xff0c;让大模型也学会“读心术”了&#xff01; 通过学习脑电波数据&#xff0c;模型成功地把受试者的脑电图信号翻译成了文本。 而且整个过程不需要大型设备&#xff0c;只要一块特制的“头巾”就能实现。 这项成果名为DeWave&#xff0c;能在…

C语言趣味代码(五)

我想以此篇结束关于C语言的博客&#xff0c;因为在C语言拖得越久越不能给大家带来新的创作&#xff0c;在此我也相信大家对C语言已经有了一个新的认知。进入正题&#xff0c;在这一篇中我主要编一个“英语单词练习小程序”来给大家展开介绍&#xff0c;从测试版逐步改良&#x…

JVM笔记-常用命令

1、jstat jstat是一个极强的监视JVM的工具&#xff0c;可以用来监视JVM的各种堆和非堆的大小以及内存使用量。 Usage: jstat -help|-optionsjstat -<option> [-t] [-h<lines>] <vmid> [<interval> [<count>]]jstat的常用用法如图所示&#xff…

python - rst file to html

文章目录 python - rst file to html概述笔记下载安装PyCharm最新的学习版新建虚拟环境为Conda的工程添加docutils库新建python文件&#xff0c;添加转换代码运行自己写的python文件&#xff0c;执行转换转换结果END python - rst file to html 概述 开源工程中有一个.rst文件…

Java集合 总结篇(全)

Java集合 集合底层框架总结 List 代表的有序&#xff0c;可重复的集合。 ArrayList -- 数组 -- 把他想象成C中的Vector就可以&#xff0c;当数组空间不够的时候&#xff0c;会自动扩容。 -- 线程不安全 LinkedList -- 双向链表 -- 可以将他理解成一个链表&#xff0c;不支持…

C++中的位运算符

位运算符&#xff1a; 按位与 (&) int a 6; // 0110 in binary int b 3; // 0011 in binary int c a & b; // 结果为 2 (0010)&#xff0c;因为对应位置都为1才为1 按位或 (|) int a 6; int b 3; int c a | b; // 结果为 7 (0111)&#xff0c;因为任一位置有1则…

Delta lake with Java--数据增删改查

之前写的关于spark sql 操作delta lake表的&#xff0c;总觉得有点混乱&#xff0c;今天用Java结合真实的数据来进行一次数据的CRUD操作&#xff0c;所涉及的数据来源于Delta lake up and running配套的 GitGitHub - benniehaelen/delta-lake-up-and-running: Companion reposi…

java如何实现简单的随机抽奖功能?

在很多应用场景中&#xff0c;我们常常需要从一系列候选者中随机抽取若干名幸运儿。这里&#xff0c;我们将通过一个具体的例子来展示如何在Java中实现这一功能。我们的例子中包含一个比赛活动&#xff0c;活动结束后需要随机抽取投给获胜队伍的用户作为奖品的接收者。 抽奖逻…

【JAVA |基础】运算符、程序逻辑控制以及方法的使用

目录 一、前言 二、操作符 1.算术运算符 2.赋值运算符 3.比较运算符 4.逻辑运算符 5.条件&#xff08;三目、三元&#xff09;运算符 6.位运算符(都是基于二进制来计算) 三、 程序逻辑控制 1.顺序结构 2.分支结构 if语句 Switch语句 3.循环结构 while语句 for循环…

thinkphp5 中控制器的创建和使用方法

在 ThinkPHP 5 中&#xff0c;控制器&#xff08;Controller&#xff09;是用于处理请求、执行逻辑操作并返回响应的类。以下是在 ThinkPHP 5 中创建和使用控制器的基本方法&#xff1a; 1. 创建控制器 在 ThinkPHP 5 中&#xff0c;控制器通常位于 application/index/contro…

6.Docker端口映射与容器互联

文章目录 端口映射与容器互联1、端口映射实现容器访问1.1、从外部访问容器应用1.2 映射所有接口的地址1.3 映射到指定地址的指定端口1.4 映射到指定地址的任意端口1.5 查看映射端口配置 2、互联机制实现容器互访2.1、自定义容器名称2.2、容器互联 端口映射与容器互联 在生产实…

Hive3.0新特性:Materialized Views 物化视图

Materialized Views 物化视图 在 Apache Hive 3.0 中引入了物化视图&#xff08;Materialized Views&#xff09;的支持&#xff0c;它们是预先计算并缓存了查询结果的数据结构&#xff0c;以提高查询性能和降低延迟。物化视图通过将查询的结果存储在物理表中来实现&#xff0…

算法提高之玉米田

算法提高之玉米田 核心思想&#xff1a;状态压缩dp 将图存入g数组 存的时候01交换一下方便后面判断即g数组中0为可以放的地方 state中1为放的地方 这样只要state为1 g为0就可以判断不合法 #include <iostream>#include <cstring>#include <algorithm>#includ…

桥接模式类图与代码

欲开发一个绘图软件&#xff0c;要求使用不同的绘图程序绘制不同的图形。以绘制直线和圆形为例&#xff0c;对应的绘图程序如表 7.7 所示。 根据绘图软件的扩展性要求&#xff0c;该绘图软件将不断扩充新的图形和新的绘图程序。为了避免出现类爆炸的情况&#xff0c;现采用桥接…