是否有任何挂钩可以更改单个产品缩略图?我确实在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;
}
这就是我现在正在做的,但这是一个错误。
过滤器,挂钩:
post_thumbnail_html
SO网友:Jordan Carter
以下是我认为是其他答案之一评论的更新版本。此函数替换宽度和高度属性,但OP希望更改src。我想,除了使用preg\\u replace替换src之外,解决方案应该是类似的。
add_action(\'woocommerce_single_product_image_thumbnail_html\',\'remove_single_product_image_attrs\',10,2);
function remove_single_product_image_attrs( $sprintf, $post_id ){
return preg_replace( \'/(width|height)="\\d*"\\s/\', "", $sprintf );
}