AI PLAY玩法更新持续收录
← 回到更新流

2026-10-13 · 原文发布日

批量为WordPress旧文章补写摘要

定时或手动扫描WordPress已发布文章,筛出摘要为空且正文超过200字符的条目,按可配置的每批数量去HTML后调用OpenAI按原文语言生成限定字数的摘要,解析校验长度不合格就跳过。dry-run模式只输出结果供审阅,关闭后通过REST API写回文章摘要。需要WordPress应用密码和OpenAI凭据,站点地址、扫描数量、模型和字数上限都可在配置里调整。

原文要点

来源是n8n社区免费模板(作者Bincy Bhanu. S),可手动或每周定时运行:拉取WordPress文章(edit上下文),只保留已发布、摘要为空、正文不少于200字符的条目;按每批数量限制后去除HTML,调用OpenAI Chat Completions按原文语言生成JSON格式摘要并校验字数范围,不合格跳过;dry-run开启时只输出供审阅,关闭后经REST API写回摘要。需在n8n配置WordPress应用密码凭据和OpenAI凭据,并设置站点地址、扫描数、模型、字数上限和dryRun开关。

这次做成什么

在n8n自建一条工作流:扫描WordPress旧文章,为缺摘要的文章自动生成限定字数摘要,先dry-run审阅再批量写回,避免一次性误改全站。

准备什么

  • 一个n8n实例(自托管或云端均可)
  • WordPress后台为可编辑文章的账号生成应用密码(用户→个人资料→应用密码)
  • OpenAI API密钥及可用额度
  • 测试用WordPress站点或先开启dry-run的权限

具体怎么做

  1. 创建并配置凭据

    在n8n的Credentials里新建两条:一条HTTP Basic Auth或WordPress凭据,用户名填WP账号、密码填应用密码;一条OpenAI凭据填入API密钥。测试调用 https://你的站点/wp-json/wp/v2/posts?context=edit&per_page=5 能返回文章即凭据有效。

  2. 搭建扫描与筛选节点

    触发器选Schedule Trigger(每周)或Manual Trigger。接HTTP Request节点GET /wp-json/wp/v2/posts?context=edit&status=publish&per_page=50。后接Code节点筛选:excerpt.rendered去标签后为空、content.rendered去标签后长度≥200,再用slice限制每批数量(如10篇)。

  3. 清洗正文并调用OpenAI

    在Code节点用正则去掉HTML标签和多余空白得到纯文本。HTTP Request节点POST https://api.openai.com/v1/chat/completions,body里model填配置的模型,messages要求按原文语言输出JSON{"excerpt":"..."},并限定词数(见下方提示词材料)。

  4. 解析校验并分支

    Code节点解析返回JSON,检查excerpt存在且字数在配置范围内(如20~60词),不合格的把该文章id记入跳过列表。用IF节点按dryRun分流:开启时把结果写到日志或Google Sheet供审阅;关闭时用HTTP Request POST /wp-json/wp/v2/posts/{id},body为{"excerpt":"生成的摘要"}写回。

  5. 先审阅再写回

    第一轮保持dryRun=true手动运行,检查输出摘要质量;确认后把dryRun改为false再运行一次小批量,最后挂上每周定时让存量文章逐步补齐。

可直接复制的材料

摘要生成提示词(messages用户消息)

本站独立编写,{{maxWords}}与{{plainText}}由上游节点替换;与原作者提示词不同。

你是网站编辑。请阅读下面的文章正文,用与正文相同的语言写一句到两句摘要。
要求:
1. 只输出JSON,格式为 {"excerpt": "摘要文字"},不要输出其他任何内容;
2. 摘要不超过{{maxWords}}个词(中文按字数折算约为{{maxWords}}×1.5个汉字);
3. 概括文章核心结论或方法,不要复述标题,不要加引号;
4. 不使用Markdown和HTML。
文章正文:
{{plainText}}

工作流配置示例(Set节点字段)

本站设计的配置示例,字段名可按自己节点映射调整;首次运行保持dryRun为true。

{
  "siteUrl": "https://demo-blog.example.com",
  "postsToScan": 50,
  "perRunLimit": 10,
  "openaiModel": "gpt-4o-mini",
  "minContentChars": 200,
  "excerptMinWords": 20,
  "excerptMaxWords": 60,
  "dryRun": true
}

输入与输出示例

本站虚构演示,非原作者运行结果,未实际调用OpenAI。

输入

一篇已发布文章,正文去HTML后约860字符,讲“如何用堆肥改善阳台菜园土壤”,excerpt字段为空;配置perRunLimit=10、excerptMaxWords=60、dryRun=true。

对应输出

dry-run输出一行审阅记录:{"postId": 412, "title": "阳台菜园土壤改良记", "excerpt": "本文介绍用厨余堆肥改善阳台菜园土壤的完整流程,包括堆肥配比、发酵时间和拌土比例,并给出避免烧根与异味的实用技巧。", "status": "skipped_dry_run"};解析校验通过,未写回WordPress。

做完检查这些

  • 筛选节点只输出已发布、摘要为空、正文≥200字符的文章,数量不超过perRunLimit
  • OpenAI返回能被JSON解析且excerpt词数落在配置上下限内,不合格条目出现在跳过列表
  • dryRun=true运行时WordPress后台文章摘要保持为空,无任何写回请求
  • dryRun=false小批量运行后,对应文章在WP后台摘要栏显示生成文字

容易卡住的地方

  • context=edit需要带应用密码的认证请求,匿名请求看不到原始excerpt字段
  • excerpt.rendered可能带<p>标签,判断是否为空前必须去标签
  • OpenAI偶尔输出多余文字导致JSON解析失败,需try/catch并记入跳过列表
  • 模型调用与Token消耗会产生费用,批量运行前先用小批量估算

原文与作者资料 ↗

本站借助AI整理来源事实,独立编写中文操作指南与示例。示例不代表实际运行结果;来源效果尚未由本站独立复现。付费模板与模型、服务费用分别计算。

原文标题
Generate missing WordPress post excerpts with OpenAI Chat Completions
原作者
Bincy Bhanu. S
原始发布日期
2026-10-13T04:56:24.261Z
来源
https://n8n.io/workflows/20838