我有一个函数,其目的是列出我的wordpress主题的images目录中的文件夹.当用户在站点的根目录中安装了wordpress时,它非常有用.但是,如果用户在根目录下的文件夹中安装了wordpress,则会失败...
$ mydir = get_dirs($ _ SERVER ['DOCUMENT_ROOT'].'/ wp-content/themes/mytheme/images');
只要将wordpress直接安装到站点的根目录(例如site.com/index.php),此功能就可以正常工作
但是,如果用户已将其博客安装在虚拟目录中,则此路径方法将失败.示例:site.com/somedirectory/index.php
有人可以用更好的方法来确定$ mydir的路径吗?
如果我可以用http地址提供我的函数,那将是非常简单的,但我的函数需要将images目录的路径作为服务器目录.有人知道使用http方法在给定目录下查找文件夹的方法吗?例如,我可以使用...获取对主题图像目录的引用
$ mydir = get_bloginfo('url').'/ wp-content/themes/mytheme/images';
但是,下面的函数不会占用URL,它必须是我要解析的所选目录的物理文件路径.所以我需要用一个带有URL的函数替换它,或者我需要找到一些方法将$ mydir函数转换为物理路径,或者其他一些方法.
这是我用于解析目录并将每个文件夹分配给数组的函数.
function get_dirs($path = '.')
{
$dirs = array();
try
{
foreach (new DirectoryIterator($path) as $file)
{
if ($file->isDir() && !$file->isDot())
{
$dirs[] = $file->getFilename();
}
}
}
catch(Exception $e)
{
//log exception or process silently
//just for test
echo "There is a problem inside the get_dirs function";
}
return $dirs;
}
Run Code Online (Sandbox Code Playgroud)
spy*_*g63 12
根据codex,使用的正确函数是:
get_template_directory()
Run Code Online (Sandbox Code Playgroud)
或者如果你想要uri:
get_template_directory_uri()
Run Code Online (Sandbox Code Playgroud)
我更喜欢使用Wordpress功能.在这种情况下,将是:
get_stylesheet_directory(). '/images';
Run Code Online (Sandbox Code Playgroud)
这将返回当前所选主题中的images目录路径,即使它是子主题.