我正在使用 WordPress 4.8.1
我试图从主题设置中删除一个目录,但既没有收到任何错误也没有成功。 甚至 PHP 错误日志也没有记录有关它的数据,我的 WP_DEBUG 是打开的。
$wp_filesystem_base = WP_Filesystem_Base();
$wp_filesystem_base->rmdir(dirname($file_path), true);
这个类肯定不是未定义的,因为我可能会遇到一些错误,但我仍然使用 class_exists 来检查它并且它在我使用的地方可用。
如果我做错了或者需要更多关于这个问题的信息,请告诉我。
最佳答案
由于此处缺少 WordPress 的核心方法工作答案,我提出了这个总结所有其他答案的完整解决方案。
require_once ( ABSPATH . 'wp-admin/includes/class-wp-filesystem-base.php' );
require_once ( ABSPATH . 'wp-admin/includes/class-wp-filesystem-direct.php' );
$fileSystemDirect = new WP_Filesystem_Direct(false);
$fileSystemDirect->rmdir($dir, true);
总结:
- 您不能使用
WP_Filesystem_Base
因为它没有真正实现 rmdir 方法;它只是一个界面。 - 您必须要求
class-wp-filesystem-base.php
因为它是WP_Filesystem_Direct
的依赖项> - 您始终可以像某人建议的那样使用您自己的
rrmdir
,但当核心中已有功能可用时,您不必添加额外的代码来维护; - 传递给构造函数的
false
参数只是因为需要 $arg 参数但未按照官方 WP 文档中的说明使用。
关于php - 如何使用 Filesystem_API 删除 wordpress 中的目录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46357748/