Canapin
(Coin-coin le Canapin)
1
你好!
在阅读以下内容之前,你可以看一下 https://meta.discourse.org/t/moved-from-pluxml-and-phpbb-to-wordpress-and-discourse-my-all-new-experience/90636,但这并非强制,我会做一个总结。
我们现在的情况。
WP 通过 WP Discourse 连接到 Discourse。WP 也是 DiscourseConnect 客户端,WP 的新闻会自动发布到 Discourse 的一个专用分类。这就是该插件所做的全部工作。
问题
我问自己:“网站的真正目的是什么?附加值很低,而且网站的许多功能都可以在 Discourse 中实现。那么,为什么还要费心使用两个平台呢?”
请注意,我只是刚开始思考。但我开始认为,在我们的情况下,摆脱 WordPress 可能是一个好主意。
那么,网站有什么好处呢?它有一个干净、以新闻为中心的设计。它有一些看起来不错但可能无用的功能。体育联合会的 Facebook iframe。一个杂志按钮。论坛的最新活动。
活动日历(自定义解决方案)。
以及许多关于独轮车信息的静态页面。
其中哪些功能在 Discourse 中无法实现?几乎没有。
主要问题是如何让新闻在我们的论坛上更显眼。每周不一定有新信息,但它们对法国独轮车社区很重要,应该显眼。
我与论坛/网站上的两位相关人员讨论了这个问题。他们认为,如果我们不丢失网站提供的任何重要内容,摆脱 WP 可能是一个好主意。
技术细节。
-
自定义的 Discourse 标题将保持不变。
-
新闻可以使用 News Plugin 📰 Elektronauts
-
但是,我们希望在论坛的主页上显示一些新闻。我记得看到过一个插件或主题组件,它在主题顶部以横幅形式显示一些帖子,但我可能记错了。是否有现成的解决方案?我认为最适合我们的方式是,在主页顶部、标题下方显示大约 3 条最新新闻,带有缩略图和摘要,并且我们可以切换此横幅,以便在我们已经阅读过这些主题时,它不会打扰我们。
-
网站的静态页面可以是主题或已发布的页面。
-
维基可以使用 Discourse 的维基功能。
-
我们不需要新闻通讯(Discourse 的摘要将取代它),我的联合管理员认为体育联合会嵌入的 Facebook 帖子流以及其他一些东西没有实际意义。
-
我们有一个活动分类(自定义解决方案),目前有些空,但很有用,我们希望保留具有特定功能的活动分类。
我过去曾看到并尝试过几个活动/日历插件:
有些插件有点难理解或配置,而且我尝试它们时的需求有点不同,所以我应该再试一次。
只保留 Discourse 的优缺点
优点
- 不再有与 WP 相关的潜在问题,其许多扩展/主题/自定义笨拙的代码[^code]以及发布帖子时的 WP/Discourse 兼容性问题。
[^code]:你不想看它;甚至不要试图去想它,我已经感到羞愧了
缺点
你的意见、想法、建议
我认为我已经很好地解释了我想要达到的目标。我很乐意听取关于从 WP+D 过渡到 D 的任何建议、意见等。
6 个赞
Stephen
(Stephen)
2
我认为这可能归结为每个网站产生的流量以及您的预算。
Discourse 完全可以做到以上所有功能,但如果您在 WordPress 网站上为大量匿名用户提供内容,您的每页浏览量成本会显著降低。
配置得当的 5 美元 VPS 可以毫不费力地提供数百万次只读页面浏览量,这正是 WordPress 的优势所在。如果通过 Discourse 提供相同的流量,则需要更多的资源。如果您关心这些方面,WordPress 仍然是一个极其有效的工具。配置得当后,它在为搜索引擎提供内容方面也非常出色。
我有一个客户目前为这两个网站每月向 DO 支付约 100 美元。当我们研究将所有内容迁移到 Discourse 时,运行成本将增加一个数量级,可以肯定地说,这项工作没有成功。
3 个赞
Canapin
(Coin-coin le Canapin)
3
非常关注。我应该提及相关信息。
这是一个非常小众的网站。流量本身就很低。它不消耗任何带宽、磁盘空间或任何东西。这两个网站都与其他网络内容一起在我的 VPS 上流畅运行,而我所做的一切都是志愿工作。
SEO 方面倒是有研究的价值。我没想过这一点。
2 个赞
目前使用托管在 Vercel 上的 Strapi Headless CMS 后端 + Next.js 前端。
它还有一个 Discourse 论坛:
https://forum.monerochan.news/
我还在考虑完全放弃 Strapi 后端,只将 Discourse 用作 Headless CMS。
因此,这个问题可以通过将“着陆页”/访问量最大的页面以无头方式托管在 Vercel 等平台上来解决。
即使以其当前形式,Discourse 几乎可以作为 Headless CMS 使用:我们可以简单地在主题 URL 后面附加 .json 来获取 markdown / 原始帖子数据。
唯一的问题将是永久链接、精选主题列表以及作者和编辑的发布+权限系统。其中一部分可以通过组和类别来完成,但如果只有一个文章/预览文章类别会更好。
也许我们应该为此构建一个插件 
@Canapin 感谢您提出这个话题!非常好的阅读

4 个赞
Stephen
(Stephen)
5
这假设只有首页提供半静态内容。在我上面的例子中,该网站有超过 10,000 篇帖子和页面。
1 个赞
export const getStaticProps: GetStaticProps = async ({params}) => {
// Run API calls in parallel
const id = params?.id
if (!id) {
return {
redirect: {
destination: '/',
permanent: false,
// statusCode: 301
},
}
}
const qs = require('qs');
const query = qs.stringify({
populate: '*',
}, {
encodeValuesOnly: true, // prettify URL
});
const article = await fetchAPI("/api/articles/" + params.id + "?" + query)
if (!article.data) {
return {
redirect: {
destination: '/',
permanent: false,
// statusCode: 301
},
}
}
return {
props: { article },
revalidate: 1,
}
}
我在 nextjs 前端使用此代码来获取文章。因此,它将缓存文章 1 秒,然后重新验证。因此,如果我们使用此方法,discourse 实例每秒只会收到 1 个请求。
这可以想象,不仅用于由作者和编辑组成的特殊用户组管理的特殊类别。
这可以用于所有内容。monerochan.news 的 strapi 后端也提供 markdown(就像 discourse 一样)。因此,我们可以使用完全相同的代码来获取帖子数据(只需在普通主题 URL 后面附加 .json)并显示它。
显然,在这种情况下,discourse 的交互式功能将缺失。但我们可以放一个按钮,上面写着“评论!”然后重定向到 discourse 页面。Nextjs 页面加载速度也非常快,并且对 SEO 友好。
所以我想有两种情况:1. 一个新闻网站有一个由作者和编辑策划的特殊类别。2. 一个普通的 discourse 论坛,包含用户生成的内容。
也可能这两种情况的混合。
在这两种情况下,构建一个 headless 前端可能有很多好处。
1 个赞
angus
(Angus McLeod)
7
如果您在使用新闻插件、登陆页插件、事件插件时遇到任何问题,请随时告知我。我很乐意为您提供帮助。
关于事件插件,您应该联系我们,因为我们正在为即将发布的 v2 版本寻找更多用例。请填写此向导:
2 个赞
Canapin
(Coin-coin le Canapin)
8
如果我理解正确的话,这是一个有趣的想法。基本上,您将保持论坛原样,另外还有一个自制网站,其中的内容将通过 Discourse 的 API 从论坛数据中获取。是这样吗?
@Stephen,WordPress 确实有其合理之处。
如果您使用缓存系统,WordPress 的加载速度会非常快,而 Discourse 需要加载整个应用程序,打开时总是需要一些时间。
我的网站 https://monocycle.info 加载速度很快,页面之间的导航几乎是即时的。
移除 WordPress 的想法有几个原因,我列出了,但我忘了补充一点,我想让论坛更显眼,更明显。我希望人们一登陆网站就能看到一个活跃的社区。
在桌面和移动设备上,在 Discourse 上注册和发帖都是一种愉悦且轻松的体验。
我可以只保留 WP 用于主页(或者不多),并将大部分内容移至 Discourse 的主题/已发布页面。
太棒了!在填写您的向导之前,我需要再次查看您的插件,以便确切了解它提供的功能以及它的整体工作方式。
1 个赞
Stephen
(Stephen)
9
如何将更多社区内容带到 WordPress 网站?以此提高可见度。
Canapin
(Coin-coin le Canapin)
10
还有更具体的想法吗?当我们登陆主页时,会有一个“讨论”链接和最近创建的主题列表。
是的!这正是我想要表达的意思!在 Discourse 端需要做的事情也不多!如果您在任何主题链接后面加上 .json,您就已经获得了 API!
以我们目前正在讨论的这个主题为例:
https://meta.discourse.org/t/go-from-a-wordpress-discourse-structure-to-a-discourse-site-only/247273/8.json?include_raw=true
注意末尾的 .json 和 include_raw=true。这就是您如何获取帖子的 markdown 以及“渲染”后的 html。
Strapi 也使用 markdown 编辑器,所以我可以完全使用之前的代码。
2 个赞
JOduMonT
(Jonathan Dumont)
12
这让我真切地从椅子上跳了起来。根据我的理解,通过使用:.json 和 include_raw=true 配合某种自动化(n8n),我们是否可以技术上将所有 discourse 通过推送元标签和 markdown 直接到 git 仓库来重新路由到 Hugo??
1 个赞