2
我在编辑带有钩子的Woocommerce模板时遇到了一些麻烦。本质上,我只想更改product-image
模板,而不是链接到上传的产品图像,而是链接到产品帖子。覆盖钩子模板
目前product-image.php
woocommerce模板有
global $post, $woocommerce, $product;
?>
<div class="images">
<?php
if (has_post_thumbnail()) {
$image_title = esc_attr(get_the_title(get_post_thumbnail_id()));
$image_link = wp_get_attachment_url(get_post_thumbnail_id());
$image = get_the_post_thumbnail($post->ID, apply_filters('single_product_large_thumbnail_size', 'shop_single'), array(
'title' => $image_title
));
$attachment_count = count($product->get_gallery_attachment_ids());
if ($attachment_count > 0) {
$gallery = '[product-gallery]';
} else {
$gallery = '';
}
echo apply_filters('woocommerce_single_product_image_html', sprintf('<a href="%s" itemprop="image" class="woocommerce-main-image zoom" title="%s" rel="prettyPhoto' . $gallery . '">%s</a>', $image_link, $image_title, $image), $post->ID);
} else {
echo apply_filters('woocommerce_single_product_image_html', sprintf('<img src="%s" alt="Placeholder" />', woocommerce_placeholder_img_src()), $post->ID);
}
?>
<?php do_action('woocommerce_product_thumbnails'); ?>
</div>
我不确定如何适应echo apply_filters('woocommerce_single_product_image_html', sprintf('<a href="%s" itemprop="image" class="woocommerce-main-image zoom" title="%s" rel="prettyPhoto' . $gallery . '">%s</a>', $image_link, $image_title, $image), $post->ID);
到%s
更改为链接的帖子。
我使用的钩:
add_action('woocommerce_product_thumbnails', 'custom_links');
function custom_links() {
//code
}
有人能帮助我获得这个有些方向是什么?
感谢您的回应!该函数似乎正在工作,但是当我更改'$ link'的值时,它将删除图片,我知道如何更改href并使src保持不变? – Chris
@Chris这是因为$ link变量包含html,如“”。使用preg_replace()(或任何其他字符串函数)只修改url或仅重新生成整个字符串。你有产品ID。只需获取图像和网址并重做字符串。 – ViszinisA
当我尝试替换$ link字符串时,出现致命错误。 I.E.让它只显示图像,甚至没有尝试将它链接到post'function custom_links($ link,$ post_id){ $ link =“”; return $ link; }'我想我在这里错过了一条规则。 – Chris