J'ai une fonction dont le but est de lister les dossiers dans le répertoire images de mon thème wordpress. Cela fonctionne très bien lorsque l'utilisateur a installé wordpress dans le répertoire racine du site. Toutefois, il échoue si l'utilisateur a installé wordpress dans un dossier sous la racine ...Wordpress> obtenir le chemin d'accès complet au répertoire d'images de mon thème sans tenir compte des chemins parents
$ mydir = get_dirs ($ _ SERVER ['DOCUMENT_ROOT']. '/ Wp-content/themes/mytheme/images');
Cette fonction fonctionne très bien tant que le wordpress est installé directement dans la racine du site, comme site.com/index.php
Cependant, cette méthode de chemin échoue, si l'utilisateur a installé son blog dans un répertoire virtuel. Exemple: site.com/somedirectory/index.php
Quelqu'un peut-il aider avec une meilleure méthode pour déterminer le chemin du $ mydir?
Ce serait très simple si je pouvais alimenter ma fonction avec l'adresse http, mais ma fonction nécessite le chemin vers le répertoire images comme répertoire du serveur. Quelqu'un sait-il un moyen de trouver les dossiers sous un répertoire donné en utilisant la méthode http à la place? Par exemple, je peux obtenir une référence au répertoire de mon thème avec des images ...
$ mydir = get_bloginfo ('url') '/ wp-content/themes/MyTheme/images'.
Cependant, la fonction ci-dessous, ne prendra pas une URL, il doit s'agir d'un chemin physique vers le répertoire que je veux analyser. Donc j'ai soit besoin de le remplacer par une fonction qui prend une URL ou j'ai besoin de trouver un moyen de convertir la fonction $ mydir en un chemin physique, ou peut-être d'autres moyens.
Voici la fonction que j'utilise pour analyser le répertoire et assigner chaque dossier à un tableau.
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;
}
Merci chanson, qui est utile pour trouver le chemin de l'URL vers le répertoire cible. Cependant, ma fonction nécessite un chemin physique puisqu'elle utilise DirectoryIterator –