我有一个问题,我从昨天开始挣扎。所以,我的网络与woocommerce仍然在本地主机上。 我有模板覆盖问题。我在我的主题中覆盖了循环开始,结束,content-product.php和content-single-product.php,这样就可以了。 我对content-single-product.php有问题,因为我希望它可以使类别可靠(无论是识别 - id,name,slug)。所以我在google上找到了一些解决方案,但没有一个可行。 在我的singe-product.php中,我更换了
woocommerce_get_template_part( 'content', 'single-product' );
与
if ( is_product_category( 'my-cat-slug' ) )
{
woocommerce_get_template_part( 'content', 'single-product-dogs' );
}
else {
woocommerce_get_template_part( 'content', 'single-product' );
}
我尝试使用!is_product_category
替换my-cat-slug实际Cat名称,但我也没有。
当然我把single-product.php放到我的主题中的woocommerce文件夹中,其余的工作被覆盖的文件都是。我创建了文件内容-single-product-dogs.php,其中我复制了content-single-product.php中的内容,并进行了一些更改,就像TEST编写的一样小。
我也试过
if ( ! function_exists( 'woocommerce_content' ) ) {
function woocommerce_content() {
if ( has_term( 'my-cat-slug', 'product_cat' ) ) {
while ( have_posts() ) : the_post();
wc_get_template_part( 'content', 'single-product-dogs' );
endwhile;
}
else {
while ( have_posts() ) : the_post();
wc_get_template_part( 'content', 'single-product' );
endwhile;
}
}
}
这也行不通。我使用的一切,它总是回到默认覆盖的内容 - single-product.php
我没有更多的想法。请有人帮忙:)。
P.S是否可以更改默认的product-image.php,该自定义内容与single-product-dog.php不同?
由于
答案 0 :(得分:1)
如果您的主题中已经 integrate WooCommerce,则可以覆盖woocommerce_content()功能。
它完美适用于WooCommerce 2.5.5
将自定义模板文件放入 your_theme / woocommerce /
将以下列出的代码段添加到您的主题 functions.php :
/**
* Override 'woocommerce_content' function
*/
if ( ! function_exists( 'woocommerce_content' ) ) {
/**
* Output WooCommerce content.
*
* This function is only used in the optional 'woocommerce.php' template.
* which people can add to their themes to add basic woocommerce support.
* without hooks or modifying core templates.
*
*/
function woocommerce_content() {
if ( is_singular( 'product' ) ) {
while ( have_posts() ) : the_post();
// Template depends from category slug
if ( has_term( 'my-cat-slug', 'product_cat' ) ) {
woocommerce_get_template_part( 'content', 'single-product-dogs' );
} else {
woocommerce_get_template_part( 'content', 'single-product' );
}
endwhile;
} else { ?>
<?php if ( apply_filters( 'woocommerce_show_page_title', true ) ) : ?>
<h1 class="page-title"><?php woocommerce_page_title(); ?></h1>
<?php endif; ?>
<?php do_action( 'woocommerce_archive_description' ); ?>
<?php if ( have_posts() ) : ?>
<?php do_action('woocommerce_before_shop_loop'); ?>
<?php woocommerce_product_loop_start(); ?>
<?php woocommerce_product_subcategories(); ?>
<?php while ( have_posts() ) : the_post(); ?>
<?php wc_get_template_part( 'content', 'product' ); ?>
<?php endwhile; // end of the loop. ?>
<?php woocommerce_product_loop_end(); ?>
<?php do_action('woocommerce_after_shop_loop'); ?>
<?php elseif ( ! woocommerce_product_subcategories( array( 'before' => woocommerce_product_loop_start( false ), 'after' => woocommerce_product_loop_end( false ) ) ) ) : ?>
<?php wc_get_template( 'loop/no-products-found.php' ); ?>
<?php endif;
}
}
}