如何通过编程方式将ZIP文件下载到wp-plugins文件夹中?

时间:2016-05-09 15:56:33

标签: wordpress wordpress-plugin zip

我正在创建一个WordPress插件,该插件应该从远程位置下载ZIP文件并将其放入wp-plugins文件夹中。 所以我创建了一个使用Curl下载文件的方法(这很好),然后将文件放入wp-plugins文件夹。我正在使用WP_Filesystem以确保我有权在服务器上放置文件。这就是我现在所拥有的:

public function download_plugin($url, $path) 
{
    $ch = curl_init($url);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    $data = curl_exec($ch);
    curl_close($ch);

    global $wp_filesystem;
    if(defined('FS_CHMOD_FILE'))
    {
        $chmod = FS_CHMOD_FILE;
    }
    else
    {
        $chmod = 0755;
    }
    if (empty($wp_filesystem))
    {
        require_once (ABSPATH . '/wp-admin/includes/file.php');
        WP_Filesystem();
    }
    if(!$wp_filesystem->put_contents(
      $path,
      $data,
      $chmod
    ))
    else
    {
        return new \WP_Error('writing_error', 'Error when writing file');
    }
}

当我运行该方法时,服务器上没有创建任何文件。但是$path变量具有正确的路径,$data变量确实包含ZIP文件作为字符串。然而,WordPress方法put_contents什么也没做。即使我将方法的参数更改为绝对应该像null一样的东西,它也会返回$wp_filesystem->put_contents(WP_PLUGIN_DIR.'example.txt','Some text',FS_CHMOD_FILE));

我做错了什么吗?调试非常困难,因为我没有收到任何错误,put_contents总是返回null

0 个答案:

没有答案