我是Woocommerce的新人。我想为图书类别自定义Woocommerce产品页面的模板。我将content-single-product.php文件替换为自定义的文件,修改了single-product.php文件中的代码,如下所示:
<?php while ( have_posts() ) : the_post(); ?>
<?php
global $post;
$terms = wp_get_post_terms( $post->ID, 'product_cat' );
foreach ( $terms as $term ) $categories[] = $term->slug;
if ( in_array( 'livros', $categories ) ) {
wc_get_template_part( 'content', 'single-product-books' );
} else {
wc_get_template_part( 'content', 'single-product' );
}
?>
<?php endwhile; // end of the loop. ?>
现在我想用这一个product-image-books.php替换product-image.php文件。试过这样但不起作用:
global $post;
$terms = wp_get_post_terms( $post->ID, 'product_cat' );
foreach ( $terms as $term ) $categories[] = $term->slug;
if ( in_array( 'books', $categories ) ) {
wc_get_template_part( 'content', 'single-product-books' );
wc_get_template_part( 'single-product/product', 'image-books' );
} else {
wc_get_template_part( 'content', 'single-product' );
wc_get_template_part( 'content', 'product-image' );
}
?>
此文件位于模板文件夹中:woocommerce&gt;单品。有什么帮助吗?
答案 0 :(得分:2)
单个产品图像使用woocommerce_show_product_images()
功能&amp;通过woocommerce_before_single_product_summary
钩子挂钩。
因此,不是直接调用模板,而是首先从该钩子中删除操作,然后在同一个钩子上添加自定义函数。
您要显示图片的文件(product-image-books.php
&amp; product-image.php
)必须位于wordpress\wp-content\themes\your-theme\woocommerce\single-product\
目录中。
请在主题的functions.php
文件或自定义插件文件中添加以下代码。我测试了代码和&amp;它在我的安装中运行良好。
remove_action( 'woocommerce_before_single_product_summary', 'woocommerce_show_product_images', 20 );
add_action( 'woocommerce_before_single_product_summary', 'qt563_woocommerce_show_product_images', 20 );
function qt563_woocommerce_show_product_images() {
global $post;
$terms = wp_get_post_terms( $post->ID, 'product_cat' );
foreach ( $terms as $term ) $categories[] = $term->slug;
if ( in_array( 'livros', $categories ) ) {
wc_get_template( 'single-product/product-image-books.php' );
} else {
wc_get_template( 'single-product/product-image.php' );
}
}
@Emmanu,你能否验证一下&amp;接受它作为答案?