You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

WordPress插入带查询字符串的URL图片失败问题排查

问题解决:带查询字符串的图片URL无法插入

问题原因

你当前代码里用basename($image_url)获取文件名时,一旦URL带查询字符串(比如?rev=2780533),basename会把查询字符串也包含进文件名,生成类似screenshot-1.png?rev=2780533的文件名。这种带特殊字符的文件名会导致wp_upload_bits无法正常处理,最终插入失败。

解决方案

先解析URL,提取不含查询字符串的文件路径,再获取正确的文件名。可以用WordPress内置的wp_parse_url函数拆分URL,提取路径部分后再取basename。

修改后的代码

$image_url = 'https://ps.w.org/custom-upload-folder/assets/screenshot-1.png?rev=2780533';

if ( ! class_exists( 'WP_Http' ) ) {
    require_once ABSPATH . WPINC . '/class-http.php';
}
                   
$http     = new \WP_Http();
$response = $http->request( $image_url );

if( is_wp_error( $response ) || $response['response']['code'] != 200 ) { 
    return false; 
}

// 解析URL,提取路径部分获取正确文件名
$url_parts = wp_parse_url($image_url);
$file_name = basename($url_parts['path']);
                  
$mirror = wp_upload_bits( $file_name, null, $response['body'] );

if ( ! empty( $mirror['error'] ) ) { 
    return false; 
}

内容的提问来源于stack exchange,提问作者Litalino

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.14 08:36:37