因此,我有一个WordPress主题。变量不会包含在不同的目录中
在functions.php文件,我正在写,看起来像这样的功能:
function my_function(){
$var1 = 'apple';
$var2 = 'orange';
include get_bloginfo('stylesheet_directory').'/lib/fruits.php';
}
而且fruits.php文件看起来像这样:
<?php
echo "My brother's favorite fruit is an $var1, but my favorite fruit is an $var2.";
?>
当我打电话my_function()在我的主题中的某处,fruit.php中的echo语句显示在屏幕上,但$ var1和$ var2的值不显示。他们只是空白。
现在这里是奇怪的部分。如果我移动到fruits.php同一目录下的functions.php,并更改包括创建my_function()语句是:
include 'fruits.php';
2个变量显示就好了。
任何想法可能会导致此问题?
仅供参考,我也尝试定义路径的变量fruits.php然后试图
include $path;
无济于事。
这应该工作。您的情况中还缺少一些其他信息。代码将包含在你的函数中,这样变量就可以被访问。奇怪的是,你预先在include目录中加入了wordpress'stylesheet_directory'这是一个URL,而不是一个文件路径,因此它不应该被用来在PHP中包含文件。 – webbiedave 2010-10-29 06:34:05
谢谢webbiedave。你的直觉是对的。我将包含路径改为使用常量STYLESHEETPATH,而现在它完美地工作。虽然,似乎PHP的部分奇怪的行为。在我原来的代码中,它确实包含了该文件,但它不会将变量传递给它。为什么只能这样工作呢?那么,无论如何,我将来都会记住这一点。再次感谢。 – mjsiemer 2010-10-29 16:12:40