在我的主题中,我将使用WP\\u文件系统将文件写入,例如:
$file = get_template_directory().\'/library/assets/css/wpless2css.css\';
输出如下内容
/home/user/domain/http_docs/wp-contents/theme/mytheme/library/assets/css/wpless2css.css
除非ftp用户能够通过chroot访问,否则这将起作用/home/user/domain/
(在某些服务器上?)。
对于chroot,WP\\u文件系统无法找到$file
.
解决方案似乎可以定义FTP_PATH
在wp配置中。php到/home/user/domain/
和使用:
if(FTP_BASE) $file = str_replace(FTP_BASE,\'\',get_template_directory()).\'/library/assets/css/wpless2css.css\';
我正在寻找一个更健壮的解决方案,并支持不同的可能权限系统。
最合适的回答,由SO网友:Bass Jobsen 整理而成
更改后FTP_BASE
在我的wp-config
我发现WP的更新功能坏了。然后我意识到更新功能的工作方式是相同的,不需要任何额外的设置。在里面wp-admin/includes/update-core.php
我发现$wp_filesystem->wp_content_dir()
. 这也解决了我的问题。
在…上http://xref.wordpress.org/branches/3.8/WordPress/Filesystem/WP_Filesystem_Base.html 您将找到可能有用的函数列表:
string wp_content_dir ()
string wp_lang_dir ()
string wp_plugins_dir ()
string wp_themes_dir ([string $theme = false])
事实上,@otto早点给我答案(
Using wp_filesystem in Plugins), 他写道:
使用$wp\\u文件系统时,有一个方便的函数调用来获取内容目录路径:$wp\\u filesystem->wp\\u content\\u dir();。您需要使用此功能,因为“远程”目录路径可能与“本地”目录路径不同。