You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

WordPress functions.php引入Vidyard外部脚本不生效问题

代码错误说明

你的代码存在3个核心问题,导致脚本完全没有被加载,也不会抛出报错:

  • 钩子名称错误:WordPress前端加载脚本的官方标准钩子是wp_enqueue_scripts,你自定义的wp_enqueue_vidyard钩子不会被WordPress核心触发,整个自定义函数从头到尾都没有执行。
  • 入队逻辑错误:wp_get_script_tag()的作用是根据参数生成script标签字符串,本身不会向WordPress注册、加载脚本;后续调用wp_enqueue_script('wp_get_script_tag')是尝试加载一个句柄名为wp_get_script_tag的不存在的脚本,和你要引入的Vidyard脚本没有任何关联。
  • ACF字段取值隐患:get_field()未显式指定页面ID时,在主查询异常、存在二级循环的场景下可能拿不到正确的字段值。
正确实现代码

将以下代码替换你原来的内容加入functions.php即可:

function add_vidyard_script(){
    // 同时满足两个判断条件才加载脚本
    if ( get_field('vidyard_video', get_queried_object_id()) && is_page_template('templates-page/customers.php') ) {
        // 入队外部脚本
        wp_enqueue_script(
            'vidyard-v4',
            'https://play.vidyard.com/embed/v4.js',
            array(),
            '1.8.52',
            false
        );
        // 给脚本添加async属性与指定ID,兼容所有WordPress版本
        add_filter('script_loader_tag', function($tag, $handle){
            if ($handle !== 'vidyard-v4') {
                return $tag;
            }
            return str_replace(' src', ' async="async" id="vidyard-v4-js" src', $tag);
        }, 10, 2);
    }
}
// 挂载到WordPress标准的脚本入队钩子
add_action( 'wp_enqueue_scripts', 'add_vidyard_script' );
效果验证
  • 替换代码后清空站点缓存(含缓存插件缓存、服务器缓存、浏览器缓存)
  • 访问使用templates-page/customers.php模板且vidyard_video字段为勾选状态的页面,查看网页源码即可看到目标script标签,格式和你预期完全一致
  • 不满足两个条件的页面不会加载该脚本,不会产生多余的资源加载

内容的提问来源于stack exchange,提问作者MPortman

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.02 07:18:17