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

时间:2011-02-01 作者:Scott B

我需要获取对$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\');

$mytest = somefunction();

function somefunction() {
  global $wp_filesystem;
  var_dump($wp_filesystem);

  return;
}
?>
更新:我发现我可以直接调用WP\\u Filesystem()来创建它,所以我可以很好地提取zip,现在的问题是,zip文件被复制到目标文件夹,而不是像我的ZipArchive方法那样被删除。

require(\'../../../wp-blog-header.php\');
require(\'../../../wp-admin/includes/file.php\');

function openZip($file_to_open) { 
    global $target;  
    global $wp_filesystem;
    if(class_exists(\'ZipArchive\'))
    {
        $zip = new ZipArchive();  
        $x = $zip->open($file_to_open);  
        if($x === true) 
        {  
            $zip->extractTo($target);  
            $zip->close();                
            unlink($file_to_open);  
        } else {  
            die("There was a problem. Please try again!");  
        }
    }
    else
    {
    WP_Filesystem();
    $my_dirs = \'\'; //What should this be? I\'m already passing he $target directory
    _unzip_file_pclzip($file_to_open, $target, $my_dirs);
    }
} 

1 个回复
最合适的回答,由SO网友:hakre 整理而成

$wp_filesystem 是一个全局变量,包含文件系统“工厂”运行后(自动)配置的文件系统对象的实例。

要在全局变量上运行工厂(以便进行设置),只需调用WP_Filesystem() 函数,猜猜看,undocumented in codex. 至少docblock contains some information 您可以阅读源代码(如果您可以选择的话)。

无论如何,我会在需要文件后尝试向代码中添加函数调用。php来自/wp-admin/includes 目录也许这已经解决了你的问题。

如果您正在寻找一种(更好的)文件系统抽象,而不是内置的,请考虑file-system objects in SPL 这已经是PHP的一部分了。

结束

相关推荐

如何将定制的“文本”小部件从unctions.php添加到外观管理器?

我正在尝试使用自己的css类参数向函数中添加默认WP文本小部件的副本。php,以便它出现在窗口小部件管理器中,并可以添加到侧栏中。下面是我的第一次尝试,但我相信一定有比我现在做的更简单的方法。这能以更简单的方式完成吗?在功能上。php,我有这个。。。$google_search = TEMPLATEPATH . \"/google_search.php\";require_once($google_search); add_action(\'widgets_init\', create_funct