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

如何获取WooCommerce商品缩略图URL?代码问题求助

问题排查与修正

你的代码里获取商品缩略图URL的写法存在两个核心问题:

  • $product->get_image()方法的作用是生成完整的HTML img标签,并非返回纯图片URL,直接把它赋值给image字段会导致API收到的是HTML代码而非有效URL。
  • 传入get_image()的参数写法错误,且get_the_post_thumbnail_url()依赖全局post对象,不如直接用WooCommerce产品自身的图片方法可靠。

正确实现方式

WooCommerce提供了专门的方法获取产品图片ID,结合WordPress的附件URL方法即可拿到纯图片URL:

步骤1:获取产品缩略图URL

用$product->get_image_id()拿到产品主图的附件ID,再通过wp_get_attachment_image_url()获取指定尺寸的URL(支持的尺寸包括thumbnail、woocommerce_thumbnail、woocommerce_single、full等)。

步骤2:修正后的完整代码

$product = wc_get_product( $post->ID );
$end_point = 'https://api.webpushr.com/v1/notification/send/sid';

// 获取产品缩略图URL,指定woocommerce默认缩略图尺寸
$image_id = $product->get_image_id();
$image_url = $image_id ? wp_get_attachment_image_url( $image_id, 'woocommerce_thumbnail' ) : '';

$body = array(
    'title'      => $product->get_name(),
    'message'    => 'check out now',
    'target_url' => $product->get_permalink(),
    'image'      => $image_url, // 这里填入纯图片URL
    'sid'        => '113858026',
);

可选:兼容无产品图片的情况

如果部分商品未设置主图,可以添加默认图片兜底:

$image_url = '';
if ( $product->get_image_id() ) {
    $image_url = wp_get_attachment_image_url( $product->get_image_id(), 'woocommerce_thumbnail' );
} else {
    // 替换成你的默认图片URL
    $image_url = 'https://your-domain.com/default-product-thumb.jpg';
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 12:24:47