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

WordPress找不到注册文件时如何控制指定插件脚本按需加载

WordPress按页面条件加载Theme My Login脚本方案

问题梳理

需要管控页面加载的两个脚本:

  • Theme My Login插件脚本:
<script type="0f1a6d7ca503db410c0d10c4-text/javascript" src='https://www.[-----------].se/wp-content/plugins/theme-my-login/assets/scripts/theme-my-login.min.js?ver=7.1.2' id='theme-my-login-js'></script>
  • Guru主题内置脚本:
<script type="0f1a6d7ca503db410c0d10c4-text/javascript" src='https://www. [-----------].se/wp-content/themes/guru/framework/js/public/jquery.smartresize.js?ver=5.5.2' id='jquery-smartresize-js'></script>

目前已通过注释public_html/wp-content/themes/guru/framework/register_public.php中对应入队代码屏蔽第二个脚本,注释代码如下:

/* wp_enqueue_script('jquery-smartresize', $template_uri.'/js/public/jquery.smartresize.js', array(), false, true); */

核心需求:不全局停用Theme My Login插件,仅在特定页面加载该插件的前端脚本,不需要手动定位插件内的入队代码,优先从入队环节直接拦截,避免先注册再移除的冗余逻辑。

实现方案

不需要翻插件源码找入队位置,直接把下面代码加到当前主题/子主题的functions.php文件中即可,通过WordPress原生钩子拦截,插件更新也不会失效。

// 条件控制Theme My Login脚本加载
add_action('wp_enqueue_scripts', 'custom_block_tml_script', 999);
function custom_block_tml_script() {
    $load_tml = false;

    // 以下为放行条件,按需修改
    // 示例1:按页面slug放行,括号内替换为你站点实际需要加载TML的页面别名
    if ( is_page(['login', 'register', 'resetpass']) ) {
        $load_tml = true;
    }
    // 示例2:按URL路径放行,需要的话取消注释,替换为实际路径关键词
    // if ( str_contains($_SERVER['REQUEST_URI'], '/member/') ) {
    //     $load_tml = true;
    // }

    // 非放行页面直接移除脚本注册与入队
    if ( !$load_tml ) {
        wp_dequeue_script('theme-my-login');
        wp_deregister_script('theme-my-login');
    }
}

注意事项

  • 钩子优先级设为999,确保执行时机晚于插件的脚本注册逻辑,不会出现拦截失效的问题
  • 放行条件可灵活组合:需要按页面ID判断就传页面ID给is_page(),需要按文章类型判断就加is_singular('post_type')之类的判断逻辑
  • 不要直接修改Theme My Login插件内的源码,插件版本更新会覆盖所有修改,用钩子实现的逻辑无后续维护成本
  • 之前全局搜索找不到对应入队代码是正常的,该插件的脚本入队逻辑封装在类内部方法中,直接搜wp_enqueue_script会匹配到大量无关结果,没必要花时间定位。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.29 07:51:24