2009-06-13 6 views
2

J'ai un plugin WordPress que je voudrais travailler sur localhost ainsi que dans le déploiement sans modification, mais je n'arrive pas à définir l'emplacement d'un répertoire en utilisant une seule instruction.Comment obtenir DOCUMENT_ROOT pour fonctionner à la fois sur localhost et sur l'hébergeur?

Je voudrais faire:

$feed->set_cache_location($_SERVER['DOCUMENT_ROOT'] . '/wp-content/cache'); 

Bien que cela fonctionne sur l'hôte Web. Sur localhost il produit cette erreur:

C:/xampp/htdocs/wp-content/cache/a547b8792c3144c98549be23ef1465e7.spc is not writeable 

sur localhost, je dois le mettre à cela pour le faire fonctionner:

$feed->set_cache_location($_SERVER['DOCUMENT_ROOT'] . '/mysite/wp-content/cache'); 

Sûrement il doit y avoir quelque chose qui fonctionne aussi bien sur localhost et sur une bande hôte!

Merci.

Répondre

3

Il semble donc que l'OP serait intéressée par les constantes prédéfinies WP_CONTENT_DIR ou WP_PLUGIN_DIR.

Ceci est pour les installations Wordpress. Mais pour les situations non-WP, j'ai trouvé l'extrait ci-dessous pour être utile:

$docroot = realpath((getenv('DOCUMENT_ROOT') && ereg('^'.preg_quote(realpath(getenv('DOCUMENT_ROOT'))), realpath(__FILE__))) ? getenv('DOCUMENT_ROOT') : str_replace(dirname(@$_SERVER['PHP_SELF']), '', str_replace(DIRECTORY_SEPARATOR, '/', dirname(__FILE__)))); 

Ceci est dans des situations similaires où je voulais des choses à travailler à la fois un environnement localhost/dev et un environnement serveur, où les emplacements de docroot différaient. Mais ce qui est encore plus important, c'est que cela fonctionne dans les situations où j'ai besoin d'exécuter un fichier PHP autonome.

+0

Cela n'a pas fonctionné pour moi - renvoyé le chemin d'accès, y compris le nom de fichier. J'ai fini d'utiliser ce formulaire qui obtient la racine qui est un dossier supérieur à mon fichier actuel: if (! $ _ SERVER ['DOCUMENT_ROOT']) $ _SERVER ['DOCUMENT_ROOT'] = realpath (dirname (__ FICHIER __). '/ .. /') – besimple

Questions connexes