我认为以前从未真正需要在WP中创建文件夹/文件,但是对于插件,我需要在中缓存(用于调整大小的图像)文件夹wp-content/uploads
。
这就提出了一个问题-我真的需要完成所有过程Filesystem API
(包括在需要时混乱地要求FTP凭据),还是wp_mkdir_p()
足够好呢?
我认为以前从未真正需要在WP中创建文件夹/文件,但是对于插件,我需要在中缓存(用于调整大小的图像)文件夹wp-content/uploads
。
这就提出了一个问题-我真的需要完成所有过程Filesystem API
(包括在需要时混乱地要求FTP凭据),还是wp_mkdir_p()
足够好呢?
Answers:
wp-content/uploads/
应该对服务器是可写的(否则将无法上传文件,不是吗?)。如果要在此目录下创建内容,则可以安全使用wp_mkdir_p()
。
我只会WP_Filesystem
在服务器没有写该位置权限的机会时使用,例如in wp-content/plugins/
,该位置对于服务器而言不必是可写的(至少我认为它不一定是?)。
旁注:食典的“文件权限”页面还讨论wp-content/cache/
目录。这是缓存文件的“更标准”位置吗?
在尝试无尽的可能性/托管设置之前,我会尝试一些简单的方法:
$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(); ... ;-)
}
wp_mkdir_p();
可以在执行后检查是否保存了,或者是否应该在if语句中执行fn的执行...(以前从未使用过它,甚至在知道函数本身之前都不知道)现在)。
让您的插件创建文件/文件夹只是一个提示:我的插件也做到了这一点,并且我遇到了许多问题,涉及不同用户的文件权限。有些是Windows,有些是unix,有些是托管的,有些是自家种植的。共享插件后,这是我收到的#1支持电子邮件。
我已经对代码进行了重构,以最大程度地减少触摸文件系统的需要,而上载目录是我现在用来避免此类问题的唯一目录。
uploads
锁定到足以使WP失败的程度,则插件没有任何尝试尝试做更多事情的感觉。如果它对WP足够好,那么对插件也足够好。幸运的是,我只需要在任何地方缓存目录,而不需要更复杂且容易出错的东西。
cache
更多的是页面缓存插件之类的东西,而我的案例更多是关于图像的替代版本的……这些文件夹之间的区别似乎是语义上的而不是技术上的,不是吗?