创建单个产品模板

时间:2014-08-28 17:58:02

标签: php wordpress wordpress-plugin woocommerce

我需要为我的woocommerce网站中的每个产品制作单独的模板。

是否有方法可以执行类似single-product-9455.php

之类的操作

我相信我可以使用像这样的类别制作模板

<?php
    if ( has_term( 'custom-1', 'product_cat' ) ) {
        wc_get_template_part( 'content', 'custom-1' );
    }
    elseif ( has_term( 'custom-2', 'product_cat' ) ) {
        wc_get_template_part( 'content', 'single-product-custom-2' );
    }
    else {
        wc_get_template_part( 'content', 'single-product' );
    }
?>

但由于每个产品都需要自定义模板,因此会产生许多不必要的类别。

有没有办法定位产品ID?

Body css类是不够的。我需要每个模板。

1 个答案:

答案 0 :(得分:2)

你可以,但你不想这样做。如果网站增长,它可能会变得非常混乱。一个明智的方向是使用conditionals

否则,如果兔子洞听起来不错,你可能想为每个产品创建一个新的类别以挂钩条件......

1)如果主题目录不存在,请在主题目录中创建 woocommerce 文件夹。

2)在这个名为&#34; woocommerce&#34;的目录中复制您的content-single-product.php文件,并将其命名为 content-single-product-TEMPLATENAME.php

同时将woocommerce中的woocommerce模板文件 single-product.php 复制到您的名为woocommerce的目录中,找到以下行:

3)在您刚刚复制的 single-product.php 中找到以下行。

woocommerce_get_template_part( 'content', 'single-product' );

将其更改为:

if (is_product_category( '1CATEGORY') // Where this is the category name
{
    // Category name 1
    woocommerce_get_template_part( 'content', 'single-product-TEMPLATENAME' );
}
elseif (is_product_category( '2CATEGORYNAME') 
{
    // category name 2
    woocommerce_get_template_part( 'content', 'single-product-TEMPALTENAME2' );
}
else
{
    // You will allows want to default to the single product template.
    woocommerce_get_template_part( 'content', 'single-product' );
} //endif

如果有办法从产品ID中挂钩,那么您就不会想要。这将要求产品提前在那里,从开发/业务的角度来看是没有意义的。

欢迎修改。