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

2026-10-08 · 原文发布日

n8n模板:自动扫描WordPress缺alt文本的图片,用AI补齐并记录审核

工作流每天扫描WordPress媒体库,筛出无alt文本的JPEG/PNG等图片,读取其所属文章的标题和摘要作为上下文,把图片发给OpenAI视觉模型生成结构化alt文本、装饰图标记和置信度。审核模式下建议写入Google Sheets待人工确认,自动模式直接回写WordPress;每小时检查表格中标记为approved的行并写回。需在配置里填站点地址、模式、语言和每批数量。模板免费。

原文要点

原模板每天(或手动)运行一次扫描、每小时运行一次回写:经WordPress REST API媒体端点翻页取图,只保留JPEG/PNG/WebP/GIF且alt为空的媒体,跳过已在表格日志中出现过的媒体ID,并按max_per_run限批;取图片所属文章(回退到页面)的标题与摘要作上下文,下载medium尺寸图发给OpenAI视觉模型,返回结构化alt文本、装饰图标记与置信度;review模式追加pending行到Google Sheets,auto模式直接回写WordPress并记为applied或decorative;小时任务读取status为approved的行回写并改状态为applied。模板本身免费,OpenAI API按用量另计费。

这次做成什么

用此免费模板在自有n8n里搭一条双节奏流程:每日生成alt建议进表格待审,每小时把人工批准的行写回WordPress;本站给出一套可在空账号里端到端走通的独立练习方案。

准备什么

  • 一个可安装应用的WordPress站点及管理员账号,能创建Application Password
  • 自托管或云端n8n实例,可配置WordPress、Google Sheets、OpenAI三类凭据
  • OpenAI API密钥,所选模型需支持图像输入(费用另计)
  • Google账号,可建Sheet并与n8n的Google凭据连通

具体怎么做

  1. 创建WordPress应用密码并配凭据

    WP后台→用户→个人资料→Application Passwords,新建一个仅给n8n用的密码;在n8n新建WordPress API凭据,填站点URL、用户名、应用密码。测试期建议用一台专门测试站,不要在内容真实的生产站上先跑auto模式。

  2. 建审核用Google Sheet

    新建Sheet,建一个名为Log的标签页,首行至少含media_id、image_url、post_title、suggested_alt、decorative、confidence、status、edited_alt列;在n8n连Google Sheets凭据,把表格ID与标签名填进工作流配置。status取值约定:pending、approved、applied、decorative。

  3. 填Config并首跑扫描

    在模板Config节点填wp_base_url(末尾不带斜杠)、mode先设review、alt_language(如zh-CN)、max_per_run先设5、max_alt_length(如125)。手动执行每日分支:流程翻页拉取媒体→过滤空alt且未入日志→取所属文章标题摘要→下载medium图→调视觉模型→往Log追加pending行。

  4. 人工审核并触发小时回写

    在Log中把要采纳的行status改为approved,可在edited_alt里改文案;手动执行小时分支:流程读取approved行→逐条经REST API更新对应媒体alt→把status改为applied。确认无误后再考虑是否切auto模式并激活两个定时触发。

可直接复制的材料

视觉模型结构化输出提示词(本站独立编写,粘到OpenAI节点的system/user消息中,变量按模板实际字段名替换)

占位变量名需在模板里核对实际字段再替换;非原模板自带提示词全文

你是网站无障碍文案编辑。根据这张图片、所属文章标题「{{post_title}}」与摘要「{{post_excerpt}}」判断图片内容并生成alt文本。规则:1)若图片为纯装饰(分隔线、纹理背景、无信息配图),设decorative为true,alt_text给空字符串;2)否则用{{alt_language}}写一句不超过{{max_alt_length}}字符的客观描述,不以“图片/照片显示”开头,不含文件名与猜测性专有名词;3)confidence为0到1的小数,看不清主体时低于0.6。只输出JSON,不要多余文字:{"alt_text":"...","decorative":false,"confidence":0.0}

Log标签页首行与一条测试行(合成数据)

本站虚构练习行,media_id与URL需换成你测试站真实媒体的值

media_id,image_url,post_title,suggested_alt,decorative,confidence,status,edited_alt
4821,https://demo-site.example/wp-content/uploads/tea-set-300x200.jpg,秋季茶具上新,白瓷茶壶与两只青瓷茶杯摆在木托盘上,false,0.91,approved,

输入与输出示例

本站虚构演示,非模板实际运行结果

输入

测试站媒体库中media_id=4821的图片无alt,挂在文章《秋季茶具上新》下,摘要为“本季上新白瓷与青瓷系列”;max_per_run=5,mode=review。

对应输出

Log页新增一行:4821 | tea-set-300x200.jpg | 秋季茶具上新 | 白瓷茶壶与两只青瓷茶杯摆在木托盘上 | false | 0.91 | pending;人工改approved后小时分支回写WP并把status变applied。

做完检查这些

  • 每日分支跑完后,Log中只出现alt原本为空且此前未记录过的媒体,行数不超过max_per_run
  • 同一媒体ID重复执行不会产生第二条pending行(跳过逻辑生效)
  • 把status改为approved的行在小时分支执行后,WP媒体库对应图片alt可见更新,行状态变为applied
  • decorative=true的行不会被写入实质alt文本,日志状态为decorative

容易卡住的地方

  • wp_base_url末尾多一个斜杠会导致REST请求拼接失败,配置时去掉
  • unattached(未挂载到文章/页面)的媒体只有媒体元数据作上下文,生成质量会下降,属预期行为
  • auto模式会直接改写线上媒体库,务必先在测试站验证再切换
  • 模型必须支持图像输入,否则视觉调用报错;API费用由OpenAI按用量收取
  • 应用密码泄露会暴露站点写权限,只用专用测试凭据,别在截图或日志里明文粘贴

原文与作者资料 ↗

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

原文标题
Auto-fill missing WordPress image alt text with OpenAI and Google Sheets
原作者
3t3
原始发布日期
2026-10-08T07:05:39.631Z
来源
https://n8n.io/workflows/20660