在上传中创建目录-WP_MKDIR_P()或WP_FILESYSTEM?
-
22-10-2019 - |
题
我认为我以前曾经在WP中创建文件夹/文件,但是对于插件,我需要缓存(用于调整大小的图像)文件夹中的文件夹 wp-content/uploads
.
这提出了一个问题 - 我真的需要通过 Filesystem API
(包括在需要时杂乱地要求FTP凭据)或 wp_mkdir_p()
足够好吗?
解决方案
wp-content/uploads/
服务器应该是可写的(否则不可能上传文件,不?)。如果您要在此目录下创建一些东西,则可以安全使用 wp_mkdir_p()
.
我只会使用 WP_Filesystem
如果服务器没有机会写入该位置的权限,例如 wp-content/plugins/
, ,这不必为服务器做可写的(至少我认为它不一定是吗?)。
边注: 法典的文件权限页面 也谈论一个 wp-content/cache/
目录。这将是缓存文件的“更标准”位置?
其他提示
我会尝试一些简单的事情,然后再弄乱无尽的Possibilites/托管设置:
$target = 'wherever';
wp_mkdir_p( $target );
if ( wp_mkdir_p( $target ) === TRUE )
{
echo "Folder $target successfully created";
}
else
{
new WP_Error; #... etc. Just tell where the user has to make a new folder with the name xy
// or if you're kool, you use _doing_it_wrong(); ... ;-)
}
只要让您的插件创建文件/文件夹即可提出:我的插件也可以做到这一点,我遇到了许多用于不同用户的文件权限的问题。有些是窗户,有些是unix,有些是托管的,有些是家庭的。一旦我共享插件,这是我的#1支持电子邮件。
我已经重构了代码以最大程度地减少触摸文件系统的需求,而上传目录是我现在使用的唯一一个避免此类问题的目录。