我创建了一个脚本,可以从外部站点获取图像,并将其导入WordPress图像库。->wp管理/上传。php[媒体库]
我的代码Snipplet
foreach($url as $linkurl) {
$tmp = download_url( $linkurl);
preg_match(\'/[^\\?]+\\.(jpg|JPG|jpe|JPE|jpeg|JPEG|gif|GIF|png|PNG)/\', $linkurl, $matches);
$clean = str_replace(array("%2B", "%52", "%20", "%5"), "B", basename($matches[0]));
$file_array = array(
\'name\' => basename( $clean ),
\'tmp_name\' => $tmp
);
if ( is_wp_error( $tmp ) ) {
@unlink( $file_array[ \'tmp_name\' ] );
return $tmp;
}
$id = media_handle_sideload( $file_array, $post_id, \'gallery desc\' );
$value = wp_get_attachment_url( $id );
update_post_meta($post_id, array_push($post_id, \'_product_image_gallery\', $id));
//update_post_meta($post_id, array_push($post_id, \'_product_image_gallery\', $value ));
}
我做错了什么
SO网友:labm0nkey
我认为你在最后一行中犯了一个错误。array_push
没有达到你想要达到的目标(检查Manual) 与相同update_post_meta
接受不同的参数<除此之外,WooCommerce还在简单的逗号分隔列表中存储库,如1,45,78,34
因此,您应该更改最后一行update_post_meta($post_id, array_push($post_id, \'_product_image_gallery\', $id));
至
update_post_meta($post_id, \'_product_image_gallery\', $id);
或者,如果您添加了多个图像,请输入逗号分隔的列表,而不是$id。