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

为何get_template_directory_uri()函数在部分WordPress模板文件中无法生效?

问题解决:调用get_template_directory_uri()报错的原因及修复方法
  • 核心原因:你直接访问了/pages/login.php文件,该文件未加载WordPress核心环境,导致内置函数get_template_directory_uri()无法被识别。index.php能正常工作是因为它是WordPress的入口文件,会自动初始化整个WP核心体系。

  • 修复方案:

    1. 推荐方案:使用自定义页面模板
      WordPress的模板文件必须通过WP路由机制访问,不能直接打开。操作步骤:
      • 在login.php文件最顶部添加模板声明:
        <?php
        /*
        Template Name: Login Page
        */
        get_header(); // 加载WP头部,自动引入核心环境
        ?>
        
      • 登录WordPress后台,创建新页面,在「页面属性」的「模板」选项中选择「Login Page」,发布后通过该页面的永久链接访问。
    2. 临时方案:手动加载WP核心(不推荐)
      如果必须直接访问该文件,可在login.php最顶部添加代码手动加载WP核心:
      <?php
      require_once($_SERVER['DOCUMENT_ROOT'] . '/wp-load.php');
      ?>
      
      注意:此方式可能破坏WP模板层级与安全机制,仅作临时应急使用。
  • 额外优化提示:WordPress中加载静态资源建议使用wp_enqueue_style()函数管理,而非直接写<link>标签,示例代码:

    <?php
    function enqueue_login_assets() {
        wp_enqueue_style('bootstrap-style', get_template_directory_uri() . '/assets/css/bootstrap.min.css');
    }
    add_action('wp_enqueue_scripts', 'enqueue_login_assets');
    ?>
    

内容的提问来源于stack exchange,提问作者sergio jacobo jauregui

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.26 08:37:22