有人可以告诉我这两种方法中的任何一种是否优于另一种方法以及为什么?
$mydir = ABSPATH.'/wp-content/themes/mytheme/images';
$mydir = dirname(__FILE__).'/images';
它们都可用于获取“mytheme”图像目录的绝对路径,无论wordpress是安装在根目录还是根目录下的子目录中。在这两种情况下,它们都是从位于“mytheme”文件夹下的functions.php文件中调用的。
答案 0 :(得分:17)
我个人更喜欢dirname()
因为它始终保证给我正确的结果,而ABSPATH方法依赖于固定的主题路径和主题名称都可以改变。
顺便说一下,您可以使用__DIR__
代替dirname(__FILE__)
。
答案 1 :(得分:12)
ABSPATH
)。请参阅Determining Plugin and Content Directories WordPress Codex文章。自PHP 4.0.2起symlinks are being resolved __FILE__
和__DIR__
魔术常数以来,请考虑到这一点。
底线:要确定主题目录的绝对路径,我建议您使用同时get_template_directory()
并在内部合并applies filters的get_theme_root()
函数和get_template()
。
答案 2 :(得分:2)
对于我自己的项目,我会选择dirname(__FILE__)
,PHP中也有一个新的常量:
__DIR__ === dirname(__FILE__)
答案 3 :(得分:0)
ABSPATH是定义的变量 - >定义(" ABSPATH" __FILE__
);
如果我直接使用魔法常量__FILE__
。它将产生相同的结果。
在CMS ABSPATH和框架中使用BASEPATH用于以定义变量的形式获取根信息。 最后,在两者的帮助下,我们得到了同样准确的结果。