我有一個函數,其目的是列出我的wordpress主題的圖像目錄內的文件夾。當用戶在網站的根目錄中安裝了wordpress時,它很好用。然而,如果用戶已經在根目錄下的文件夾中安裝了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地址,但我的功能需要路徑圖像目錄作爲服務器目錄。任何人都知道使用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;
}
感謝歌曲,這對找到目標目錄的url路徑很有幫助。但是,我的函數需要一個物理路徑,因爲它使用DirectoryIterator – 2009-12-23 19:40:09