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

子主题中无法入队脚本问题排查求助

问题排查与解决方案

我来帮你梳理下问题所在,你的代码有几个关键细节没处理好,导致脚本看起来注册成功但没实际效果:

1. jQuery依赖的写法错误

你在注册脚本时,jQuery依赖写成了array(jquery)——这里的jquery是字符串,必须加上单引号或双引号,否则PHP会把它当作未定义的变量,导致依赖加载异常,脚本可能无法正常执行。

2. JS函数定义后未触发执行

你的custom_functions.js里只定义了set_rollup_links_greensboro函数,但没有主动调用它,所以这段代码永远不会被执行。

3. 未确保DOM加载完成后再操作元素

即使脚本在页脚加载(你设置了true参数),也可能存在DOM元素还未渲染完成的情况,导致getElementById找不到目标元素,代码执行失败。


修改后的代码示例

1. functions.php 修正

function tutor_portal_scripts() { 
    $user = wp_get_current_user(); 
    if (in_array( 'ad_greensboro', (array) $user->roles ) ) { 
        debug_to_console("User is AD Greensboro"); 
        // 修正jQuery依赖的引号问题
        wp_register_script('set_rollup_links_greensboro', get_stylesheet_directory_uri() . '/js/custom_functions.js', array('jquery'), '', true); 
        wp_enqueue_script('set_rollup_links_greensboro'); 
    } 
} 
add_action( 'wp_enqueue_scripts', 'tutor_portal_scripts' );

2. custom_functions.js 修正(原生JS版)

function set_rollup_links_greensboro() { 
    console.log("Set rollup links for Greensboro AD"); 
    var at_link = document.getElementById('at-view-link'); 
    var bas_link = document.getElementById('bas-view-link'); 
    var tutor_link = document.getElementById('tutors-view-link'); 

    // 先检查元素是否存在,避免控制台报错
    if (at_link) at_link.setAttribute('href', 'https://devts.techstartutors.com/appointment-tracker-form-view-greensboro-nc/'); 
    if (bas_link) bas_link.setAttribute('href', 'https://devts.techstartutors.com/book-a-service-form-view-greensboro-nc/'); 
    if (tutor_link) tutor_link.setAttribute('href', 'https://devts.techstartutors.com/'); 
}

// 等待DOM完全加载后执行函数
document.addEventListener('DOMContentLoaded', function() {
    set_rollup_links_greensboro();
});

或者用jQuery版本(因为已经依赖了jQuery,写法更简洁):

// 利用jQuery的ready事件确保DOM加载完成
jQuery(document).ready(function($) {
    console.log("Set rollup links for Greensboro AD"); 
    var at_link = $('#at-view-link'); 
    var bas_link = $('#bas-view-link'); 
    var tutor_link = $('#tutors-view-link'); 

    // 检查元素是否存在再修改属性
    if (at_link.length) at_link.attr('href', 'https://devts.techstartutors.com/appointment-tracker-form-view-greensboro-nc/'); 
    if (bas_link.length) bas_link.attr('href', 'https://devts.techstartutors.com/book-a-service-form-view-greensboro-nc/'); 
    if (tutor_link.length) tutor_link.attr('href', 'https://devts.techstartutors.com/'); 
});

额外排查步骤

  1. 打开浏览器控制台(F12),查看Console标签是否有报错信息;
  2. 切换到Network标签,刷新页面,确认custom_functions.js是否成功加载;
  3. 检查debug_to_console的输出,确认用户角色判断逻辑是否正常触发。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.27 07:25:31