在Uploads-wp_mkdir_p()或WP_Filessystem中创建目录?

时间:2011-05-19 作者:Rarst

我认为我以前没有在WP中创建文件夹/文件的实际需要,但对于插件,我需要缓存(用于调整大小的图像)文件夹wp-content/uploads.

这就提出了一个问题——我真的需要用Filesystem API (包括在需要时杂乱无章地要求FTP凭据),或wp_mkdir_p() 够了吗?

3 个回复
最合适的回答,由SO网友:Jan Fabry 整理而成

wp-content/uploads/ 应该可以为服务器写入(否则就无法上载文件,不是吗?)。如果要在此目录下创建内容,可以安全地使用wp_mkdir_p().

我只会用WP_Filesystem 如果服务器可能没有写入该位置的权限,如wp-content/plugins/, 它不必为服务器写(至少我认为它不必写?)。

旁注:The File Permissions page of the Codex 还谈到了wp-content/cache/ 目录这是缓存文件的“更标准”位置吗?

SO网友:kaiser

我会尝试一些简单的方法,然后再摆弄无穷无尽的可能性/托管设置:

$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(); ... ;-)
}

SO网友:user6479

让你的插件创建文件/文件夹只是一个提示:我的插件也做到了这一点,我在不同用户的文件权限方面遇到了一系列问题。有些是windows,有些是unix,有些是托管的,有些是自行开发的。分享插件后,这是我的#1支持电子邮件。

我已经对代码进行了重构,以尽量减少接触文件系统的需要,而上载目录是我现在唯一用来避免此类问题的目录。

结束

相关推荐

$wp_FILESYSTEM返回空。依赖关系是什么?

我需要获取对$wp\\u filesystem对象的引用。在下面的测试中,var\\u dump($wp\\u filesystem)返回NULL。要正确设置$wp\\U文件系统,还需要哪些其他文件?我一直在期待,因为它在文件中调用。php,加载该文件就足以加载该对象。<?php require(\'../../../wp-blog-header.php\'); require(\'../../../wp-admin/includes/file.php\'); $m