【发布时间】:2015-08-04 20:05:49
【问题描述】:
我正在建立一个基于 Woocommerce 的网上商店。 在单个产品页面中,我删除了精选图片(通过删除调用它的代码),并将其替换为画廊中的第一张大尺寸图片,使用以下代码:
<?php
$imgid = $product->get_gallery_attachment_ids();
?>
<a href="<?php echo wp_get_attachment_url( $imgid[0] ); ?>"
class="woocommerce-main-image zoom first"
rel="lightbox[product-gallery]">
<img src="<?php echo wp_get_attachment_url( $imgid[0] ); ?>" alt="">
</a>
紧接着,缩略图被调用:
<?php do_action( 'woocommerce_product_thumbnails' ); ?>
由于数组中的第一张图片已经以大尺寸显示,我设法将它从缩略图列表中删除,如下所示:
<script>
jQuery('.thumbnails.columns-3 a:first-child').hide()
</script>
我现在唯一的问题是,第一张图片仍然会在灯箱中出现两次,因为它仍然出现在图库中 2 次。
我怎样才能将它从灯箱的数组中删除,而不是从图库中的数组中删除?
我尝试了以下方法,但出现错误:
// define the woocommerce_product_thumbnails callback
function action_woocommerce_product_thumbnails( $woocommerce_show_product_thumbnails, $number )
{
$array = $product->get_gallery_attachment_ids();
$size = count($array);
$result = array();
for ($i = 0; $i < $size; $i += 2) {
$result[] = $array[$i];
}
var_dump($result);
}
// add the action
add_action( 'woocommerce_product_thumbnails', 'action_woocommerce_product_thumbnails', 10, 2 );
// add the action
add_action( 'woocommerce_product_thumbnails', 'action_woocommerce_product_thumbnails', 10, 2 );
关于接下来要尝试什么的任何提示?
【问题讨论】:
-
您可以过滤
woocommerce_product_gallery_attachment_ids。虽然我很好奇为什么你不只是将一张图片设置为特色图片并为自己省去这个麻烦。 -
@helgatheviking 这是格式问题,我希望商店网格中的所有产品图像都具有相同的格式,但是一旦进入单个产品页面,这张裁剪的图片就无关紧要了......我该如何过滤你说的身份证?
-
好的,现在更有意义了。使用Multiple Post Thumbnails 怎么样?您可以设置一个循环缩略图(您裁剪的图像),然后为产品页面设置第二个图像。
-
@helgatheviking 我花了一段时间,但我设法改写了这个问题。 See here 。关于如何在没有插件的情况下做到这一点的任何提示(我尽量远离它们以解决长期安全问题)并考虑到已经完成的工作?非常感谢您的意见!
-
我认为编辑这个问题会更好。现在您已经创建了一个副本,我不确定在哪里发布我的答案。虽然改写更清楚地表明您应该使用多个帖子缩略图:这正是它的目的,但我想出了一个自定义模板替代方案。
标签: php jquery arrays wordpress woocommerce