无论父路径如何,Wordpress>获取我的主题图像目录的完整路径

Sco*_*t B 2 php

我有一个函数,其目的是列出我的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)


Chr*_*yer 7

我更喜欢使用Wordpress功能.在这种情况下,将是:

get_stylesheet_directory(). '/images';
Run Code Online (Sandbox Code Playgroud)

这将返回当前所选主题中的images目录路径,即使它是子主题.

函数参考/获取样式表目录