gpt4 book ai didi

php - Woocommerce单品缩略图src链接替换哪个钩子(Hook)

转载 作者:行者123 更新时间:2023-12-02 17:11:48 26 4
gpt4 key购买 nike

有没有hook可以改单品缩略图的?我确实在 SO 和互联网上进行了很多搜索,但没有成功。

“缩略图”并不是指更改当前图像的大小,而是我想根据某些情况用新图像完全更改/替换产品图像(缩略图)。

public function pn_change_product_image_link( $html, $post_id ){

$url = get_post_meta( $post_id );
$alt = get_post_field( 'post_title', $post_id ) . ' ' . __( 'thumbnail', 'txtdomain' );
$attr = array( 'alt' => $alt );
$attr = apply_filters( 'wp_get_attachment_image_attributes', $attr, NULL );
$attr = array_map( 'esc_attr', $attr );
$html = sprintf( '<img src="https://upload.wikimedia.org/wikipedia/commons/thumb/3/38/WP_Suspension_logo.svg/2000px-WP_Suspension_logo.svg.png"', esc_url($url) );
foreach ( $attr as $name => $value ) {
$html .= " $name=" . '"' . $value . '"';
}
$html .= ' />';
return $html;
}

这就是我现在正在做的,但它会引发错误。

过滤器,钩子(Hook):

post_thumbnail_html

最佳答案

在模板 single-product/product-image.php 中,您可以看到在单个产品页面上显示图像的所有源代码。

您可以按照我在评论中的建议使用 woocommerce_single_product_image_thumbnail_html,但这并不是很有用,因为您想为主图像设置自定义源链接。

在模板源代码中,您将看到它使用了 WordPress 函数 wp_get_attachment_image_src(),在它的源代码中,您将看到您可以使用过滤器钩子(Hook) 'wp_get_attachment_image_src' 这对你想做的事情来说真的很方便......

现在您可以在其上构建代码:

add_filter( 'wp_get_attachment_image_src', array( $this, 'pn_change_product_image_link'), 50, 4 );
public function pn_change_product_image_link( $image, $attachment_id, $size, $icon ){
if( ! is_product() ) return $image; // Only on single product pages
if( $size == 'shop_thumbnail' ) return $image; // Not for gallery thumbnails (optional)

// Your source image link
$src = 'https://upload.wikimedia.org/wikipedia/commons/thumb/3/38/WP_Suspension_logo.svg/2000px-WP_Suspension_logo.svg.png';
$width = ''; // <== (optional) define the width
$height = ''; // <== (optional) define the height
$image = array( $src, $width, $height );

return $image;
}

这段代码可以放在任何带有构造函数的插件文件中(但不在 function.php 文件中)

代码已经过测试并且可以工作。

You can target dynamically different image sources using $attachment_id function argument…


主题function.php文件版本

只需替换:

add_filter( 'wp_get_attachment_image_src', array( $this, 'pn_change_product_image_link'), 50, 4 );

由此

add_filter( 'wp_get_attachment_image_src', 'pn_change_product_image_link', 50, 4 );

此代码位于您的事件子主题(或主题)的 function.php 文件中。

关于php - Woocommerce单品缩略图src链接替换哪个钩子(Hook),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48803561/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com