进阶 docs.flarum.org 2026-10-15 14:50:53 · 19 阅读

第35章 Flarum Embed 扩展指南:嵌入讨论与配置解析

版本:2.x Embed Embed 扩展(flarum/embed)可以把 Flarum 的讨论嵌入到其他网站中,比如作为博客文章下方的评论区。读者可以在页面内直接查看讨论内容并回复,无需跳转。它是一个内置扩展,默认处于禁用状态。 该扩展没有设置项,也没有权限控制。凡是在论坛上能查看某讨论的用户,都能查看嵌入后的版本;回复权限与论坛本身的规则一致。 安装​ 该扩展随 Flarum 一起发布,但默认未启用。可在后台管理面板的扩展页面中启用它。 如果你的安装中没有这个扩展,可以像安装其他软件包一样引入: composer require flarum/embed
php flarum cache:clear
嵌入讨论​ 每个讨论都有一个嵌入地址:把常规地址中的 /d/ 换成 /embed/ 即可。例如讨论地址为 https://forum.example.com/d/123-welcome,那么嵌入地址就是 https://forum.example.com/embed/123。数字后面的 slug 可以省略;使用 /embed/123/45 则会直接定位到第 45 条帖子。 在需要显示讨论的页面上,添加一个指向该地址的 iframe,并引入 iframe-resizer 脚本,让 iframe 的高度随讨论内容自动调整:



使用版本 4 的 iframe-resizer,这正是扩展程序在 iframe 内部采用的版本。缺少该脚本时,iframe 会固定为你设定的高度,读者只能在框内滚动查看。 若要在单页嵌入多个讨论,请为每个 iframe 分配独立的 id 或统一的 class,并将该选择器传给 iFrameResize。 读者看到的内容 嵌入的讨论区会显示帖子及回复框,但不含论坛的页头和导航栏。帖子旁配有“回复”按钮和带评论数量的链接,点击即可跳转至论坛查看完整讨论。 嵌入区域内的链接(如帖子的永久链接或成员名称)会在新标签页中打开论坛。 登录与回复 读者可直接在嵌入区登录并回复。前提是嵌入站点与论坛同属一个主域名,例如 blog.example.com 与 forum.example.com。 若两者分属不同站点,如 myblog.com 与 forum.example.com,浏览器不会向嵌入区发送论坛的登录 Cookie,导致读者在嵌入区处于未登录状态,无法在此登录,但仍能浏览讨论并通过评论链接前往论坛回复。若需允许读者在嵌入区内登录,请在配置文件中将 Cookie 的 samesite 选项设为 none: 'cookie' => [
'samesite' => 'none',
],
该配置仅在论坛启用 HTTPS 时生效。对于阻止第三方 Cookie 的浏览器,无论设置如何,读者在嵌入区内均无法保持登录。 在 Flarum 2.0.1 之前,若浏览器同时阻止论坛在嵌入区内的存储访问,系统将仅展示讨论的基础只读版本,并提示完整内容无法加载。

评论 (0)