【问题标题】:Can't use the variable from functions.php in header.php无法在 header.php 中使用 functions.php 中的变量
【发布时间】:2013-09-19 18:07:45
【问题描述】:

我有这个简单的全局变量来调用图像路径。我把它放在functions.php,所以它可以在任何页面中使用。

// Inside functions.php
$img = get_template_directory_uri().'/assets/img/';

// Inside header.php
<img src="<?php echo $img; ?>my-image.jpg">

但是当我在 header.php 中调用它时,该变量返回 empty。奇怪的是,当我在 index.php 等其他模板页面中调用它时,它工作正常。

我试过谷歌搜索,但结果总是关于通用 PHP header(Location)

有什么解决办法吗?

谢谢

【问题讨论】:

    标签: wordpress


    【解决方案1】:

    将此功能添加到您的functions.php:

    function img()
    {
        return get_template_directory_uri().'/assets/img/';
    }
    

    并在您的header.php 中使用它,如下所示:

    <img src="<?php echo img(); ?>my-image.jpg">
    

    【讨论】:

    • 您好,谢谢,它有效。你知道为什么变量不起作用而函数起作用吗?
    【解决方案2】:

    您可以在使用它之前将其定义为全局(在标题中),例如:

    <?php 
    // Inside functions.php
    $img = get_template_directory_uri().'/assets/img/';
    
    // Inside header.php
    global $img;
    ?>
    <img src="<?php echo $img; ?>my-image.jpg">
    

    它应该可以工作。

    虽然推荐@Ankit Agrawal 的解决方案。

    【讨论】:

    • 感谢您的回答,但在谷歌搜索时,我发现有人说global 变量不好。所以我会按照Ankit回答
    • 你是对的。这就是为什么,我也推荐同样的。一切顺利:)
    猜你喜欢
    • 2012-02-22
    • 2018-12-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-12-20
    • 2019-11-05
    相关资源
    最近更新 更多