🆕 Bricks 2.4 已发布:查询循环性能提升 40%,迁移教程同步更新 →

首页 / 中文教程 / 教程

Bricks 移除 WooCommerce 产品图库中的特色图片

教程:Bricks 移除 WooCommerce 产品图库中的特色图片——woocommerce 附完整代码可直接复用,适合外贸独立站与 WordPress 开发者。

Ray ChanRay Chan·2026-08-11·约 1 分钟
目录
  1. 1.问题背景
  2. 2.解决方案:一个过滤器
  3. 3.原理说明
  4. 4.小结

问题背景

WooCommerce 的单产品页上有一个产品图库(Product Gallery),默认情况下它会把产品的特色图片(Featured Image)也渲染进图库,作为第一张图。

这在大多数场景下是合理的,但有些站点希望图库只展示附加图库图片——比如特色图已经在页面其他地方(Breadcrumb 上方的大图、自定义 Hero 区)单独展示过了,图库里再出现一张一模一样的就重复了。

Bricks 的产品图库元素底层渲染逻辑,对应文件是 /wp-content/themes/bricks/includes/woocommerce/elements/product-gallery.php,它复用了 WooCommerce 的标准图库输出。所以我们可以用 WooCommerce 官方的过滤器来干预。

解决方案:一个过滤器

在子主题的 functions.php 或代码片段插件中加入:

add_filter( 'woocommerce_single_product_image_thumbnail_html', function ( $html, $post_thumbnail_id ) {
	global $product;
	if ( $post_thumbnail_id === $product->get_image_id() )
		$html = '';
	return $html;
}, 10, 2 );

保存后刷新产品页,图库中的特色图就消失了,只剩附加图库图片。

原理说明

woocommerce_single_product_image_thumbnail_html 是 WooCommerce 渲染单产品页图库每一张缩略图时都会触发的过滤器,带两个参数:

  • $html:当前缩略图的 HTML 输出;

  • $post_thumbnail_id:当前这张图片的附件 ID。

我们拿它和 $product->get_image_id()(当前产品的特色图 ID)对比:如果一致,说明这张图就是特色图,直接把 $html 置空字符串丢弃;否则原样放行。这样其他附加图库图片完全不受影响。

相关阅读:

小结

这个需求本质上是“过滤掉图库里的特定图片”,用 WooCommerce 官方过滤器一行判断就能完成,不需要动 Bricks 模板结构,也不需要 jQuery 在渲染后隐藏元素(那样图片还是会被加载,浪费带宽)。

如果你还想做更细的定制——比如只移除某个特定 ID 的图片、或者对移动端和桌面端区别处理——都是在 $html 返回前做条件判断的事,原理完全一致。

常见误区

移除图库特色图最关键的认知是:在 PHP 端用官方过滤器剔除,而不是用 jQuery 在渲染后隐藏。后者图片照样会被浏览器加载,只是看不见,白白浪费带宽、还可能闪一下。用 WooCommerce 过滤器在输出 $html 前就判断掉,干净又省流量。进阶定制(只移除某个特定 ID、移动端和桌面端区别处理)也都是在返回 $html 前加条件,原理一致。注意这会影响图库的图片顺序和数量,若某些逻辑依赖「第一张是特色图」要做相应调整。

常见问题(FAQ)

Q:为什么不用 jQuery 隐藏? A:jQuery 隐藏图片仍会被加载,浪费带宽还可能闪烁;用 PHP 过滤器在输出前剔除更干净。

Q:会影响图库顺序吗? A:会,特色图被移除后图库数量和顺序变化,依赖「首图是特色图」的逻辑要相应调整。

Q:只想移除某一张特定图? A:在过滤器返回 $html 前按图片 ID 加条件判断即可,原理一样。

Q:桌面和移动端想区别处理? A:同样在过滤器里按条件判断,在输出前决定是否剔除。

延伸阅读

Ray Chan

站长

Ray Chan

WordPress Developer & Bricks Specialist

WordPress developer with 10+ years of client builds. Switched to Bricks in 2023 — now builds fast WordPress sites and migrates legacy Elementor/Divi projects.

延伸阅读