如何将 Asyntai AI 聊天机器人添加到 ProcessWire
ProcessWire CMS 网站的分步指南
步骤1:获取您的嵌入代码
首先,前往您的 Asyntai 仪表板并向下滚动到"嵌入代码"部分。复制您的专属嵌入代码,格式如下:
<script async src="https://asyntai.com/static/js/chat-widget.js" data-asyntai-id="YOUR_WIDGET_ID"></script>
注意: 以上代码仅为示例。您必须从仪表板复制您自己的专属嵌入代码,因为其中包含您的个人小部件 ID。
第 2 步:添加到模板文件(推荐)
ProcessWire 使用位于 site/templates/ 目录中的 PHP 模板文件。最简单的方法是将嵌入代码直接添加到主模板文件中:
- 通过 FTP、SSH 或文件管理器访问 ProcessWire 安装文件
- 导航到
site/templates/ - 打开主模板文件 — 通常是 _main.php 或 basic-page.php,具体取决于您的站点配置
- 如果您使用的是延迟输出策略(大多数站点配置的默认设置),请打开 _main.php
- 找到
</body>闭合标签 - 在其前面粘贴您的 Asyntai 嵌入代码:
<script async src="https://asyntai.com/static/js/chat-widget.js" data-asyntai-id="YOUR_WIDGET_ID"></script>
</body>
提示: 将脚本放在闭合的 </body> 标签之前,可确保聊天机器人在页面内容加载后再加载,这是推荐的最佳性能做法,不会减慢页面渲染速度。
替代方法 1:使用 _foot.inc 或 _main.php 附加文件
如果您的 ProcessWire 站点使用附加文件方法(在许多站点配置中常见),您可以将嵌入代码添加到共享的页脚包含文件中:
- 导航到
site/templates/ - 打开 _foot.inc(或您等效的页脚包含文件)
- 将您的 Asyntai 嵌入代码粘贴到
</body>闭合标签之前 - 保存文件
ProcessWire 的延迟输出策略通常使用三个关键文件:
- _init.php — 在每个模板之前运行,初始化变量
- 您的模板文件(例如
basic-page.php)— 填充内容变量 - _main.php — 使用这些变量输出最终的 HTML 标记
如果您的站点使用此方法,将脚本添加到 _main.php 中 </body> 之前,可确保其出现在每个页面上。
注意: 文件名 _init.php 和 _main.php 通过 site/config.php 中的 $config->prependTemplateFile 和 $config->appendTemplateFile 设置进行配置。如果您的文件名称不同,请检查配置。
替代方法 2:使用 $config->scripts 数组
ProcessWire 提供了 $config->scripts FilenameArray,可用于管理 JavaScript 文件。在您的 _init.php 或单个模板文件中添加:
<?php
$config->scripts->add('https://asyntai.com/static/js/chat-widget.js');
?>
然后在 _main.php(或页脚包含文件)中,循环遍历 scripts 数组以输出它们:
<?php foreach($config->scripts as $file): ?>
<script src="<?php echo $file; ?>"></script>
<?php endforeach; ?>
重要提示: $config->scripts 方法处理脚本的 src 属性,但 data-asyntai-id 属性需要单独处理。您需要在循环输出中手动添加 data 属性,或者使用第 2 步中的直接脚本标签方法以获得最简单的设置。
替代方法 3:使用钩子(ready.php)
如需更高级的方法,您可以使用 ProcessWire 的钩子系统自动将聊天机器人脚本注入每个页面。将以下内容添加到您的 site/ready.php 文件中:
<?php
$wire->addHookAfter('Page::render', function(HookEvent $event) {
$html = $event->return;
$script = '<script async src="https://asyntai.com/static/js/chat-widget.js" data-asyntai-id="YOUR_WIDGET_ID"></script>';
$html = str_replace('</body>', $script . '</body>', $html);
$event->return = $html;
});
?>
此钩子拦截每个页面的渲染 HTML 输出,并自动在闭合的 </body> 标签之前注入 Asyntai 脚本。
提示: ready.php 钩子方法非常适合在不修改任何模板文件的情况下在每个页面上添加聊天机器人。由于它位于模板文件之外,因此在模板更改和主题更新后仍然有效。
步骤3:验证安装
保存更改后,在新的浏览器标签页或无痕窗口中访问您的 ProcessWire 站点。您应该会在右下角看到聊天小部件按钮。点击它以确保其正常打开和运行。
看不到小部件? 请确保您已保存所有修改的文件。尝试清除浏览器缓存或在无痕窗口中查看。如果 ProcessWire 的模板缓存已启用,您可能需要前往 Modules → Core → Template Engine Cache 清除缓存,或在 URL 后添加 ?nocache=1。同时请验证您正在查看的页面确实使用了该模板文件。
Weebly