用 Joomla 建站多年的人,几乎都遇到过同一个别扭的问题:一篇文章只能属于一个分类。想让它同时出现在"旅行攻略"和"亲子出行"两个栏目下,要么复制一份文章,要么把标签当分类用——两种方案都不优雅。这个延续了二十年的限制,可能很快就要成为历史。Joomla 社区杂志 9 月 20 日刊发了 GSoC 2026 贡献者 Reda Mohamed 的文章,介绍了他开发的「附加分类」(Additional Categories)功能:目前代码已提交核心仓库并处于审查阶段,尚未进入 Joomla 正式版。

设计思路:主分类仍是"老大"

附加分类的设计相当克制:每条内容仍然保留一个主分类,用户熟悉的一切照旧不变;在此之下,新增了一个"附加分类"字段,可以为一个条目选择一个或多个额外的分类。内容只存在一份,但访客可以从多个分类入口发现它。

以一个旅游网站为例:"埃及五处必游之地"这篇文章,主分类保持"埃及",同时可以把"夏季旅行""亲子出行"设为附加分类。不必复制文章,也不必再用标签伪装成分类。功能目前覆盖四个核心组件:文章(com_content)、联系人(com_contact)、横幅(com_banners)和新闻源(com_newsfeeds)。

细节见真章:后台、前端与权限都考虑到了

这个功能不是简单地加一个表单字段,它对整个内容管理链条的处理相当完整:

后台列表与过滤:文章、联系人、横幅、新闻源的管理列表都会显示附加分类;按分类过滤时,结果同时包含主分类和附加分类命中的条目。

分类计数:分类列表中的条目计数变成了 "10 (+5)" 这样的形式——10 表示以此为"主分类"的条目数,括号里的 +5 表示另有 5 条内容把它作为"附加分类"。这个细节能帮管理员发现"看似闲置、实则默默引流"的分类。另外,只要分类被任何条目(无论主还是附加)引用,就无法删除,避免链接失效。

前端与权限:前台可以在一行里显示条目的全部分类("分类:埃及, 夏季旅行, 亲子出行");附加分类同样遵守分类的访问级别和发布状态——访客只有在有权查看某个分类时,才能通过它看到内容。

API 完整集成:附加分类已完全接入 Joomla API,可以读取、创建、更新和清除,且更新逻辑做了保护——除非请求明确要求清除,否则不会误删现有的附加分类。这对做移动应用或对接外部系统的开发者是实打实的好消息。

最大的亮点:自定义字段可以"跨界"了

我认为这个功能最有价值的部分,是自定义字段可以跟随附加分类。举个例子:站点为"夏季旅行"分类定义了一个"最佳出行季节"字段,一篇文章主分类是"埃及",但它把"夏季旅行"设为附加分类后,就能使用这个字段。站长不必为了让文章获得某个字段而把它挪出真正归属的主分类。这实际上打通了"字段归属分类"与"内容归属分类"之间的墙,解锁了不少过去需要第三方扩展才能实现的组合。

一个 GSoC 项目的开发启示

作者的复盘同样值得中文开发者一读。项目开始时,他以为这只是"给表单加个字段",结果发现分类牵动着后台列表、过滤器、分类博客页、模块、自定义字段、访问级别、语言字符串、API 和测试等一整条链路。他总结的两条经验很实在:一是先读现有代码再写新代码——Joomla 在表单、模型、视图、语言字符串和测试上都有既定模式,遵循这些模式才能让新功能"长得像 Joomla";二是功能命名经过社区讨论从"Secondary Categories"改成了"Additional Categories",更自然也更贴近用户心智。

对中文用户的影响与建议

1. 站长:先别急着改站。功能尚在审查中,尚未进入任何正式版本。如果站点目前靠复制文章或标签方案维持多栏目展示,可以继续沿用,等功能的合并去向明确后再规划。

2. 开发者:关注 PR 与 API 变化。代码在 GSoC 项目仓库和核心仓库可见(gsoc26_multicategory)。按 Joomla 的节奏,它大概率赶不上 10 月 13 日的 6.2 正式版(功能冻结已生效),更可能出现在 6.3。做内容类扩展(新闻、目录、聚合类)的开发者建议提前评估:附加分类上线后,自己的组件如何与它配合。

3. 参与测试。和所有 GSoC 产出一樣,社区反馈直接影响功能能否顺利合并。有测试环境的多语言站点、内容结构复杂的站点,正是最好的试验田。

总结

"多分类"是一个看似简单、实则牵动全局的需求,这大概也是它二十年来一直没能进入核心的原因。GSoC 2026 的这个实现展示了扎实的工程判断:主分类权威不动摇、权限链路完整、API 谨慎保护数据、字段体系顺势打通。如果它顺利通过审查,将是 Joomla 内容组织能力多年未见的一次实质升级。接下来值得盯住两个节点:10 月 13 日的 6.2 正式版,以及功能在核心仓库的审查进展。

作者: 樱木花道

Joomla程序员,从J1.5到J6.x始终都在做Joomla相关开发定制工作,有超过10年行业经验,国内Joomla扩展开发商ZMAX团队的核心成员

作者网站:ZMAX程序人

评论 (0)

  • 最新在前
  • 最佳在前