У меня есть плагин WordPress, который я бы хотел работать на локальном хосте, а также в развертывании без изменений, но я не могу установить местоположение для каталога, используя один оператор.
Я хотел бы сделать это:
$feed->set_cache_location($_SERVER['DOCUMENT_ROOT'] . '/wp-content/cache');
Хотя это работает на веб-хостинге. На localhost он вызывает эту ошибку:
C:/xampp/htdocs/wp-content/cache/a547b8792c3144c98549be23ef1465e7.spc is not writeable
На локальном хосте мне нужно настроить его, чтобы он работал:
$feed->set_cache_location($_SERVER['DOCUMENT_ROOT'] . '/mysite/wp-content/cache');
Конечно, должно быть что-то, что работает как на localhost, так и на веб-хостинге!
Благодарю.
Проверьте это. Определение плагинов и каталогов контента WP уже имеет это.
Таким образом, похоже, что 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-файл автономно.