如果您在网站上安装了 Tiles 并希望切换到 Masonry,您需要将所有旧画廊帖子的画廊 div 属性更改为 data-masonry-gallery。这样,您的旧画廊帖子才能正确渲染,同时无需同时安装这两个组件。
我想分享一下我是如何在自己的网站上进行切换的,或许能对大家有所帮助。
最直接的方法是手动编辑帖子。如果您的帖子数量不多,这种方法可行,但逐一查找每篇帖子可能仍然很麻烦。不过别担心,数据探索器插件 可以帮您解决问题!运行以下 SQL 查询,您就能获得所需的全部数据:
SELECT user_id, topic_id, post_number
FROM posts p
WHERE raw ~~ '%data-theme-tiles%'
如果帖子数量太多,无法手动编辑,您可以使用 rake 命令批量替换所有相关字符串。具体操作如下:通过 SSH 登录到您的服务器,然后执行:
cd /var/discourse
./launcher enter app
rake posts:remap["data-theme-tiles","data-masonry-gallery"]
您可以在此帖子中了解更多关于该解决方案的详细信息:在此帖子。请注意该帖子中关于 rake posts:remap 命令的警告:
可能还有其他方法可以实现这一目标。例如,如果您愿意,可以修改组件代码,使其同时识别这两种属性。