hulai-website/server/utils/article-helpers.js
wx 9a0afb7cce feat(blog): tags 空时从 SEO 关键词自动 fallback 前 3 个
admin 编辑页暂无 tags 输入框,保存的文章 tags 为空,前端卡片无小标签显示
(对比老文章都有"草原穿搭/旅拍穿搭"等 tag)。

在 server/utils/article-helpers.js 加 resolveTagsWithFallback:
- 前端传 tags 数组(非空)→ 按前端
- 否则从 seoKeywords 用 [,,、] 拆分取前 3 个
- 都没有 → []

POST/PUT 均接入。PUT 时用户改 seoKeywords 也会同步刷新 tags。
2026-04-20 13:54:33 +08:00

9 行
605 B
JavaScript

此文件含有模棱两可的 Unicode 字符

此文件含有可能会与其他字符混淆的 Unicode 字符。 如果您是想特意这样的,可以安全地忽略该警告。 使用 Escape 按钮显示他们。

// 保存文章时若前端未提供 tags 或 tags 为空,自动从 SEO 关键词拆前 3 个作为展示标签
// 兼容中/英逗号和顿号。tags 是卡片小标签展示用,seo_keywords 是搜索引擎 meta 用,二者语义略有差异但在 admin 未提供 tags 输入框前用此兜底
export function resolveTagsWithFallback(body) {
if (Array.isArray(body.tags) && body.tags.length) return body.tags
const kw = typeof body.seoKeywords === 'string' ? body.seoKeywords.trim() : ''
if (!kw) return []
return kw.split(/[,,、]/).map(s => s.trim()).filter(Boolean).slice(0, 3)
}