# 刚把一个 Xenforo 网站迁移到了 Discourse

**URL:** https://meta.discourse.org/t/just-migrated-a-xenforo-site-to-discourse/410745
**Category:** Community Building
**Created:** [2026年八月23日 21:45 UTC](https://meta.discourse.org/t/just-migrated-a-xenforo-site-to-discourse/410745 "2026-08-23T21:45:43Z")
**Posts on this page:** 18
**Page:** 1

<div class="post-metadata">

### Author: ![Andrew\_Bond](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/andrew_bond/32/271376_2.png) [@Andrew\_Bond](https://meta.discourse.org/u/Andrew_Bond)
#### Post date: [2026年八月23日 21:45 UTC](https://meta.discourse.org/t/just-migrated-a-xenforo-site-to-discourse/410745/1 "2026-08-23T21:45:43Z")

</div>

大家好。

我并不是 Discourse 的新手。之前我在另一个关于汽车爱好的网站 [exiges.com](http://exiges.com) 上，就已经从 phpBB 迁移到了 Discourse。

Discourse 团队持续不断地推出各种功能增强，这让我印象深刻，因此我下定决心，将我在 Xenforo 论坛上积累的 75 万个帖子和 2 万名会员迁移到了 Discourse。

凭借一点运气、判断力以及 AI 的帮助，我编写了一个导入脚本来完成数据迁移。我使用的是 [AllHost.IO](http://AllHost.IO) 的自托管系统，配置为 8 核 CPU 和 8GB 内存，整个迁移过程耗时 37 小时。

关于迁移脚本的帖子在这里：[Migrate a XenForo forum to Discourse - #141 by Andrew\_Bond](https://meta.discourse.org/t/migrate-a-xenforo-forum-to-discourse/45232/141?u=andrew_bond)

目前，我正在调整网站的外观，使其看起来更像之前的 Xenforo 版本，因为说实话，之前的设置用起来很顺手。我对目前的效果感到非常满意：

 ![image](https://global.discourse-cdn.com/meta/original/4X/7/4/3/743d42458396c0d8d447578ec6372cf8c29ef424.jpeg)

我设置了背景每 1 分钟轮换一次，目前共有 5 张背景图。此外，我还制作了一些分类框，并为它们添加了一些细节：

![image](https://sea3.discourse-cdn.com/meta/images/transparent.png)

我还需要稍微调整一下亮色模式的设置，但暂时来说已经可以正常使用了。

 ![image](https://global.discourse-cdn.com/meta/original/4X/e/d/2/ed29a1ba146da75a7aa2e273208ee0b70eac3932.jpeg)

我来这里并不是为了炫耀我的网站，更多的是想感谢开发团队。我曾是 Xenforo 的狂热粉丝，但在我看来，Discourse 这个平台让管理后台变得非常易用，而且频繁的更新也极其出色。

---

<div class="post-metadata">

### Author: ![HAWK](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/hawk/32/86627_2.png) [@HAWK](https://meta.discourse.org/u/HAWK)
#### Post date: [2026年八月23日 22:57 UTC](https://meta.discourse.org/t/just-migrated-a-xenforo-site-to-discourse/410745/2 "2026-08-23T22:57:44Z")

</div>

非常棒的反馈，谢谢！你觉得 Xenforo 还缺少哪些功能吗？

---

<div class="post-metadata">

### Author: ![Andrew\_Bond](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/andrew_bond/32/271376_2.png) [@Andrew\_Bond](https://meta.discourse.org/u/Andrew_Bond)
#### Post date: [2026年八月23日 23:15 UTC](https://meta.discourse.org/t/just-migrated-a-xenforo-site-to-discourse/410745/4 "2026-08-23T23:15:19Z")

</div>

在我看来，唯一可能对用户有帮助的是引用（quotes）界面的变化。

在 Discourse 中，我们只是直接回复。Discourse 的回复不是引用回复，但我理解我们可以高亮显示，并且鼠标悬停时会弹出引用的提示框。

在 Xenforo 中，回复时会自动引用原帖。我能理解这两种实现方式。我们的用户可能需要一些时间才能适应这种变化。

我开发过一个自定义插件，它添加了几个额外的表，并链接到主表以提供车库功能，但这更多属于自定义开发。

就功能而言？我不确定自己是否遗漏了什么！

---

<div class="post-metadata">

### Author: ![NateDhaliwal](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/natedhaliwal/32/313494_2.png) [@NateDhaliwal](https://meta.discourse.org/u/NateDhaliwal)
#### Post date: [2026年八月23日 23:27 UTC](https://meta.discourse.org/t/just-migrated-a-xenforo-site-to-discourse/410745/5 "2026-08-23T23:27:03Z")

</div>

这个怎么样？

> [@快速引用主题组件](https://meta.discourse.org/t/quick-quote-theme-component/143621):
>
> information_source摘要 简单来说：它通过单击自动引用帖子，改变了“回复帖子”按钮（非“回复主题”）的行为。hammer_and_wrench仓库链接 [GitHub - merefield/discourse-quick-quote: A Theme component to change the behaviour of the Post Reply buttons to quote a Post automatically in a single click. · GitHub](https://github.com/merefield/discourse-quick-quote)open_book安装指南 [Installing a theme or theme component](https://meta.discourse.org/t/install-a-theme-or-theme-component/63682)heart赞助 请考虑成为我开源工作的[长期赞助者](https://github.com/sponsors/merefield)，赞助金额请根据您或您所在组织的资源和需求而定，以确保该组件得到应有的维护，并继续为您的站点提供服务。 喜欢这个主题组件？请在 [GitHub](https://github.com/merefield/discourse-quick-quote) 上 star 它

---

<div class="post-metadata">

### Author: ![Moin](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/moin/32/554653_2.png) [@Moin](https://meta.discourse.org/u/Moin)
#### Post date: [2026年八月23日 23:27 UTC](https://meta.discourse.org/t/just-migrated-a-xenforo-site-to-discourse/410745/6 "2026-08-23T23:27:08Z")

</div>

> [@Andrew\_Bond](#):
>
> 在 Xenforo 中，你回复时原帖会被引用。这里两种实现方式我都觉得不错。不过，我们的用户可能需要一些时间才能适应这种机制。

如果他们不习惯的话，你可以安装 [Quick Quote Theme Component](https://meta.discourse.org/t/quick-quote-theme-component/143621)

---

<div class="post-metadata">

### Author: ![Andrew\_Bond](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/andrew_bond/32/271376_2.png) [@Andrew\_Bond](https://meta.discourse.org/u/Andrew_Bond)
#### Post date: [2026年八月23日 23:31 UTC](https://meta.discourse.org/t/just-migrated-a-xenforo-site-to-discourse/410745/7 "2026-08-23T23:31:29Z")

</div>

这是个很棒的选择！谢谢！

我之前因为第三方扩展的更新导致插件损坏，而我又非常依赖这些插件，所以现在正积极减少使用的第三方扩展数量。

不过，我肯定会把这个页面收藏起来的！

---

<div class="post-metadata">

### Author: ![HAWK](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/hawk/32/86627_2.png) [@HAWK](https://meta.discourse.org/u/HAWK)
#### Post date: [2026年八月23日 23:43 UTC](https://meta.discourse.org/t/just-migrated-a-xenforo-site-to-discourse/410745/8 "2026-08-23T23:43:27Z")

</div>

对，你说得对。我记得当时用 vB 就掉进过这个坑，结果因为代码太乱、拼凑得太严重，根本没法维护，最后只能放弃。一旦某个地方出问题，整个系统就像纸牌屋一样全垮了。

---

<div class="post-metadata">

### Author: ![Andrew\_Bond](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/andrew_bond/32/271376_2.png) [@Andrew\_Bond](https://meta.discourse.org/u/Andrew_Bond)
#### Post date: [2026年八月24日 08:18 UTC](https://meta.discourse.org/t/just-migrated-a-xenforo-site-to-discourse/410745/9 "2026-08-24T08:18:22Z")

</div>

我发现了一个我认为可以改进的地方。

权限继承。

TurboRenault 在这里可能算是个特例，因为我们有一些从旧论坛遗留下来的内容，但让我解释一下：

我们使用嵌套组。例如：

 ![image](https://global.discourse-cdn.com/meta/original/4X/c/5/9/c59215500674d2e6989e6d253da73a8eed85adeb.png)

已导入和归档版块（分类）

| [Aventime-Owners.com](http://Aventime-Owners.com)

| [Clio16valver.co.uk](http://Clio16valver.co.uk)

| 等等

| 等等

我希望在顶层（已导入和归档版块）将权限设置为只读，并让继承传递给子项。

目前我似乎无法做到这一点，所以我不得不单独编辑 9 个子项。这虽然不是致命问题，但如果有父级/子级/继承选项来继承权限，那就太好了。

---

<div class="post-metadata">

### Author: ![HAWK](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/hawk/32/86627_2.png) [@HAWK](https://meta.discourse.org/u/HAWK)
#### Post date: [2026年八月24日 20:35 UTC](https://meta.discourse.org/t/just-migrated-a-xenforo-site-to-discourse/410745/11 "2026-08-24T20:35:45Z")

</div>

我理解你的意思——我们在这件事上已经反复讨论了好几次，而最终的决定权在于安全性。Discourse 将每个类别都视为一个独立的实体，因此子类别并不是父类别在权限上的“子级”；它实际上只是为了导航和组织而进行嵌套。我们之所以这样设计，是因为管理员通常希望子类别与父类别在权限上存在刻意的差异。

我们设定了一个安全机制，确保子类别的权限不能比其父类别更宽松，从而避免出现这种情况：某人被锁定在某个类别之外，却能看到其中的私密子类别。这样一来，你可以完全自由地收紧子类别的权限，但不会意外地通过更宽松的子类别泄露内容。

---

<div class="post-metadata">

### Author: ![Andrew\_Bond](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/andrew_bond/32/271376_2.png) [@Andrew\_Bond](https://meta.discourse.org/u/Andrew_Bond)
#### Post date: [2026年八月24日 21:39 UTC](https://meta.discourse.org/t/just-migrated-a-xenforo-site-to-discourse/410745/12 "2026-08-24T21:39:09Z")

</div>

> [@HAWK](#):
>
> 我们这样做是因为管理员通常希望子类别与父类别在设置上有所区别。

我理解你的出发点，但我看待这个问题的角度不同。

我希望权限设置保持一致。我需要拒绝一系列类别的“写入/创建”权限。如果我漏掉了其中某一个，就会留下漏洞，允许用户进行回复……

我认为，如果我们能在 UI 和逻辑上正确处理这一点，这是可行的。不过，这并不是什么致命问题。我利用工作休息时间逐个找到了每个类别，并取消了两个勾选框……

---

<div class="post-metadata">

### Author: ![Andrew\_Bond](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/andrew_bond/32/271376_2.png) [@Andrew\_Bond](https://meta.discourse.org/u/Andrew_Bond)
#### Post date: [2026年八月24日 21:42 UTC](https://meta.discourse.org/t/just-migrated-a-xenforo-site-to-discourse/410745/13 "2026-08-24T21:42:31Z")

</div>

这个平台太棒了！我很喜欢能够创建一个组件并应用到主题上，然后随心所欲地进行定制。

我一直在尝试玻璃效果：

 ![image](https://global.discourse-cdn.com/meta/original/4X/0/b/6/0b61153b7e5842e450959369a6b4118b89ed2b29.jpeg)

以及鼠标悬停时高亮并模糊的效果：

 ![image](https://global.discourse-cdn.com/meta/original/4X/0/b/3/0b35768fe2dcd69fe731f04ca695596b124d1e66.jpeg)

---

<div class="post-metadata">

### Author: ![Andrew\_Bond](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/andrew_bond/32/271376_2.png) [@Andrew\_Bond](https://meta.discourse.org/u/Andrew_Bond)
#### Post date: [2026年八月25日 18:39 UTC](https://meta.discourse.org/t/just-migrated-a-xenforo-site-to-discourse/410745/14 "2026-08-25T18:39:44Z")

</div>

我发现缺少了一个功能：会员制。它基于 Stripe，而我并没有实体银行卡。

我只有 PayPal。

我已经想出了一个变通方案。虽然有点笨拙，但确实管用。

在我们已有的 WooCommerce 商店中添加商品

添加一个订阅插件

添加 Discourse 同步功能

完成所有的 API 配置

添加了一些代码，用于追踪订阅是按月还是按年添加的

与 Discourse 同步，并将用户添加到相应的群组中；一旦会员资格到期，就会将其移除

所以，用户前往商店并订阅以下其中一项：

 ![image](https://global.discourse-cdn.com/meta/original/4X/0/7/3/073d7785505d041ccf7f88b183093d7d23706a8f.jpeg)

WordPress 会触发相应操作，API 随后向 Discourse 发送请求，将用户添加到该群组

PayPal 负责处理 PayPal 的周期性付款。

---

<div class="post-metadata">

### Author: ![asa](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/asa/32/184869_2.png) [@asa](https://meta.discourse.org/u/asa)
#### Post date: [2026年八月25日 22:46 UTC](https://meta.discourse.org/t/just-migrated-a-xenforo-site-to-discourse/410745/15 "2026-08-25T22:46:48Z")

</div>

你好，欢迎到这里。也许这能帮助你找到所需的内容 🙂

> [@Discourse 订阅插件](https://meta.discourse.org/t/discourse-subscriptions-plugin/140818?tl=en):
>
> discourse摘要 Discourse 订阅插件允许站点所有者销售定期和一次性购买的订阅，这些订阅授予用户在 Discourse 实例上的群组访问权限。open_book安装指南 此插件已随 Discourse 核心 bundled。无需单独安装该插件。 Discourse Subscriptions 插件允许您创建一次性以及定期订阅，用户可付费以访问受限内容。这是为您的社区托管费用筹集资金的绝佳方式。 功能 Discourse Subscriptions 插件支持以下功能： 从管理面板创建新产品和计划 从管理面板取消和退款订阅 创建一次性购买或定期订阅计划 为定期订阅添加免费试用 支持 SCA/3D Secure 根据用户订阅/取消情况自动将用户添加/移除出计划群组 从用户个人资料中取消订阅 在订阅期结束时自动取消订阅 [可选支持 Stripe Checkout](https://meta.discourse.org/t/discourse-subscriptions/140818#p-696270-stripe-checkout-with-stripe-pricing-tables-12)[自动销售税计算与收取](https://meta.discourse.org/t/discourse-subscriptions/140818#p-696270-automatic-tax-collecting-13)[用户可为单个订阅更新其卡片信息](https://meta.discourse.org/t/discourse-subscriptions/140818#p-696270-update-payment-info-11) …

---

<div class="post-metadata">

### Author: ![Andrew\_Bond](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/andrew_bond/32/271376_2.png) [@Andrew\_Bond](https://meta.discourse.org/u/Andrew_Bond)
#### Post date: [2026年八月25日 22:49 UTC](https://meta.discourse.org/t/just-migrated-a-xenforo-site-to-discourse/410745/16 "2026-08-25T22:49:14Z")

</div>

谢谢欢迎。

> [@Discourse](#):
>
> 你需要一个 [Stripe](https://stripe.com) 支付网关账户

> [@Andrew\_Bond](#):
>
> 它是以 Stripe 为中心的，而我没有实体卡/银行账户。

我无法使用 Stripe。

---

<div class="post-metadata">

### Author: ![HAWK](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/hawk/32/86627_2.png) [@HAWK](https://meta.discourse.org/u/HAWK)
#### Post date: [2026年八月26日 00:28 UTC](https://meta.discourse.org/t/just-migrated-a-xenforo-site-to-discourse/410745/17 "2026-08-26T00:28:01Z")

</div>

很高兴你找到了临时解决方案，因为订阅插件的改进目前并不在我们的近期计划中。

---

<div class="post-metadata">

### Author: ![LotusJeff](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/lotusjeff/32/477888_2.png) [@LotusJeff](https://meta.discourse.org/u/LotusJeff)
#### Post date: [2026年八月28日 15:10 UTC](https://meta.discourse.org/t/just-migrated-a-xenforo-site-to-discourse/410745/18 "2026-08-28T15:10:37Z")

</div>

你好，Andrew，

很高兴看到更多汽车论坛，尤其是与路特斯（Lotus）相关的论坛，加入 Discourse 大家庭。我大约在 18 个月前将 [LotusElan.net](http://LotusElan.net) 从 phpBB 迁移了过来。

如果你有空，欢迎随时来逛逛。

> **[LotusElan.net](https://forums.lotuselan.net/)**
>
> Lotus Elan and Lotus Elan Plus 2 Forums : The complete information source for Lotus Elan sportscars.

---

<div class="post-metadata">

### Author: ![Andrew\_Bond](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/andrew_bond/32/271376_2.png) [@Andrew\_Bond](https://meta.discourse.org/u/Andrew_Bond)
#### Post date: [2026年八月28日 15:29 UTC](https://meta.discourse.org/t/just-migrated-a-xenforo-site-to-discourse/410745/19 "2026-08-28T15:29:50Z")

</div>

你的网站看起来非常活跃！恭喜！

---

<div class="post-metadata">

### Author: ![Andrew\_Bond](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/andrew_bond/32/271376_2.png) [@Andrew\_Bond](https://meta.discourse.org/u/Andrew_Bond)
#### Post date: [2026年八月28日 23:40 UTC](https://meta.discourse.org/t/just-migrated-a-xenforo-site-to-discourse/410745/20 "2026-08-28T23:40:34Z")

</div>

我已经完成了迁移的最后部分——我们的汽车数据库。

> **[TurboRenault.co.uk](https://turborenault.co.uk/cars)**

我们可以根据需要进行搜索：

 ![image](https://global.discourse-cdn.com/meta/original/4X/4/a/1/4a1777bc1d25583c11e865810a6e1cbd7d0390a2.png)

虽然有点笨拙，但确实能用！
