我有一个WordPress插件,我想在localhost上工作以及部署而无需修改,但我似乎无法使用一个语句设置目录的位置。
我想这样做:
$feed->set_cache_location($_SERVER['DOCUMENT_ROOT'] . '/wp-content/cache');
虽然这适用于网络主机。在localhost上会产生此错误:
C:/xampp/htdocs/wp-content/cache/a547b8792c3144c98549be23ef1465e7.spc is not writeable
在localhost上,我需要将其设置为此以使其正常工作:
$feed->set_cache_location($_SERVER['DOCUMENT_ROOT'] . '/mysite/wp-content/cache');
当然必须有一些在本地主机和网络主机上都有效的东西!
感谢。
答案 0 :(得分:3)
所以看起来OP会对WP_CONTENT_DIR或WP_PLUGIN_DIR预定义常量感兴趣。
这适用于Wordpress安装。但对于非WP情况,我发现以下代码段很有用:
$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__))));
在类似的情况下,我希望在localhost / dev环境和docroot位置不同的服务器环境中工作。但更重要的是,这适用于我需要独立运行PHP文件的情况。
答案 1 :(得分:2)
检查出来Determining Plugin and Content Directories WP已经有了这个。