建站历程 · 2025年2月11日 0

使用AI写WordPress的文章插入代码

背景就是我用另外一个网站,我就想着在另外一个网站创作的文章也通过到WordPress站点中,因此就尝试让DeepSeek来给我写个python脚本。

我的输入如下:

写一个最简单的python脚本,根据wordpress提供的username、password,插入文章

DeepSeeK的思考:

嗯,用户让我写一个最简单的Python脚本,用WordPress提供的用户名和密码来插入文章。我需要先理清楚步骤。首先,应该用WordPress的REST API来操作,因为这是标准的方法。用户可能对API不太熟悉,所以需要简单明了。

首先,安装必要的库。常用的应该是requests,用来处理HTTP请求。用户可能没有安装,所以需要提醒他们用pip安装requests。然后,脚本的大体结构应该是认证,然后发送文章数据。

认证的话,WordPress的REST API通常使用应用密码,或者基本的HTTP认证。不过从WordPress 5.6开始,支持应用密码,所以可能需要生成一个应用密码,而不是用用户的登录密码。这点需要注意,可能用户不知道,需要说明。

但用户直接给了username和password,可能指的是基本认证?不过现在基本认证可能不安全,而且WordPress默认可能不支持。或者用户可能混淆了应用密码和普通密码。这里可能需要明确一下,让用户去生成应用密码。

不过为了简单,可能用户希望直接使用用户名和密码,所以可能需要使用OAuth或者应用密码。或者使用插件来启用基本认证。例如,安装插件如REST API Basic Auth,这样可以使用基本认证。但用户可能没有安装,这可能会让脚本无法运行。但用户要求最简单的,可能假设他们已经有这样的设置。

或者,可能用户希望使用应用密码。在WordPress后台,用户可以生成一个应用密码,然后脚本里使用用户名和应用密码进行基本认证。例如,用户名是admin,密码是生成的应用密码。这样,认证头可以用基本认证。

所以,步骤大概是:

1. 导入requests库。

2. 设置WordPress站点的URL、用户名、密码。

3. 构建文章数据,包括标题、内容、状态等。

4. 发送POST请求到/wp-json/wp/v2/posts端点,使用基本认证。

5. 检查响应是否成功。

然后,代码的结构应该如下:

import requests

url = 'https://example.com/wp-json/wp/v2/posts'

username = 'your_username'

password = 'your_application_password'

data = {

'title': 'Hello World',

'content': 'This is my first post created using Python.',

'status': 'publish'

}

response = requests.post(url, auth=(username, password), json=data)

if response.status_code == 201:

print('Post created successfully!')

else:

print('Error:', response.status_code, response.text)

但需要提醒用户替换URL、用户名和密码,并且确保应用密码已经生成。或者如果站点使用自签名证书,可能需要关闭SSL验证,但这样不安全,所以可能建议添加verify=True或者忽略,但默认情况下最好保持True。

另外,可能需要处理slug、分类等,但用户要最简单的,所以只包含必填字段。不过WordPress API中,标题和内容可能需要用特定的结构。例如,标题应该是'title'的字典,内容也是'content'的字典,比如:

data = {

'title': {'rendered': 'Hello World'},

'content': {'rendered': 'This is my first post...'},

}

不过根据文档,当使用REST API创建文章时,正确的字段是'title'和'content'的原始值,而不是'rendered'。例如:

正确的参数应为:

data = {

'title': 'Hello World',

'content': 'This is my first post...',

'status': 'publish'

}

但需要确认,可能我之前记错了。比如,WordPress REST API的创建文章端点,可能需要将标题和内容放在顶层字段,而不是嵌套的结构。例如,根据官方文档,POST请求的body参数中,title和content是字符串,分别对应文章的标题和内容。而状态设置为publish,否则可能默认是草稿。

所以正确的数据应该是:

data = {

'title': 'Hello World',

'content': 'This is my first post...',

'status': 'publish'

}

这样发送的话,应该能正确创建文章。

另外,需要确认认证方式是否正确。假设用户已经安装了Basic Auth插件,或者使用了应用密码,那么使用requests的auth参数传递用户名和密码是正确的。

测试响应状态码,成功创建的话,应该是201 Created。所以检查状态码是否为201,否则输出错误信息。

可能的错误点包括:认证失败,权限不足,URL错误,或者SSL证书问题。例如,如果网站使用自签名证书,可能需要设置verify=False,但会提示不安全警告。用户如果遇到这样的问题,可能需要处理,但脚本中暂时不处理,保持简单。

综上,给出这个脚本,并提醒用户需要安装requests库,使用应用密码,启用REST API认证,以及可能需要处理SSL的问题。另外,注意WordPress的固定链接设置可能需要正确,否则API端点可能不可用。

可能还需要处理其他错误情况,但用户要最简单的,所以只做基本的响应检查。

DeepSeek的最终输出:

以下是一个使用WordPress REST API创建文章的Python脚本示例,需要先安装requests库:

pip install requests

脚本代码:

import requests

# 配置参数
WORDPRESS_URL = 'https://你的网站地址/wp-json/wp/v2/posts'  # 替换为你的WordPress地址
USERNAME = '你的管理员用户名'  # 替换为你的用户名
PASSWORD = '你的应用密码'  # 替换为你的应用密码

# 文章数据
post_data = {
    'title': '我的Python创建的文章',
    'content': '这是通过Python脚本自动发布的文章内容',
    'status': 'publish'  # 直接发布,设为draft则是草稿
}

# 发送请求
response = requests.post(
    WORDPRESS_URL,
    auth=(USERNAME, PASSWORD),
    json=post_data
)

# 检查结果
if response.status_code == 201:
    print('文章创建成功!文章ID:', response.json()['id'])
else:
    print('错误:', response.status_code)
    print(response.text)

使用前需完成以下准备:

  1. 生成应用密码(在WordPress后台):
  • 进入 用户 → 个人资料
  • 在「应用密码」部分生成新密码(会得到类似 xxxx xxxx xxxx xxxx xxxx 的密码)
  • 脚本中的PASSWORD填写这串密码(不是你的登录密码)
  1. 启用REST API
  • 确保WordPress的固定链接设置不是「朴素」模式(建议选「文章名」)
  1. 如果遇到SSL证书错误
  • 临时解决方案(仅测试环境使用):
    python response = requests.post(..., verify=False)

原理说明:

  1. 通过WordPress REST API的/wp/v2/posts端点创建文章
  2. 使用基本认证(Basic Auth)验证身份
  3. 请求体包含文章标题、内容和发布状态
  4. 返回201状态码表示创建成功

经过测试后完全能用,太强大了。

上述代码中username = ‘your_username’,这是我们wordpress的登录账号。关于如何获取应用密码:

密码名称在代码中是没啥用的,只是Wordpress后台的

一个记录而已。