Soflyy WP所有导入自定义文件下载问题

时间:2018-03-08 作者:Stradders

我需要将用户id发送到远程服务器以下载XML文件。我通过以下代码片段来完成这一点:

function custom_file_download($url, $type = \'xml\'){

    $ch = curl_init();

    $userData = array( \'user_id\' => \'MY_USER_ID\' );

    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($ch, CURLOPT_HEADER, 0);
    curl_setopt($ch, CURLOPT_POST, true);
    curl_setopt($ch, CURLOPT_POSTFIELDS, $userData);


    $result = curl_exec($ch);
    if (curl_errno($ch)) {
            exit(\'Error:\' . curl_error($ch));
    }
    curl_close ($ch);

    $uploads = wp_upload_dir();
    $filename = $uploads[\'basedir\'] . \'/\' . strtok(basename($url), "?") . \'.\' . $type;

    if (file_exists($filename)){
            @unlink($filename);
    }
    file_put_contents($filename, $result);
    return str_replace($uploads[\'basedir\'], $uploads[\'baseurl\'], $filename);
}
然后,我将“从URL下载”选项与地址一起使用

[custom_file_download("MY_REMOTE_URL", "xml")]
这将成功地将文件下载到/wp-content/uploads。但是,WP Import返回结果“您的导入文件有问题。请验证URL是否返回有效的导入文件。”

我可以使用“上载文件”选项手动导入文件,没有问题,这表明文件本身没有问题。但我无法创建cron作业来完成每日更新,直到WP All Import能够识别使用“从URL下载”时已成功创建文件。

有人建议,文件位置未正确返回到WP All Import。请问,是否有人可以协助调试和/或识别上述代码段中的错误?

也许下载位置应该修改为WP All Import默认值(/WP content/uploads/wpallimport/uploads)?

提前感谢

1 个回复
SO网友:maheshwaghmare

我建议您使用wp_remote_post()wp_remote_get() 它在内部调用HTTP请求并处理所有可能的错误。

同时使用download_url() 下载文件并media_handle_sideload() 将下载的文件上载到uploads目录。

结束