web-dev-qa-db-ja.com

特定のカテゴリの製品の異なるテンプレート。 WooCommerce

たとえば、私はカテゴリコーヒーマシンと、コーヒーマシン単一製品テンプレート用のテンプレートを1つずつ持っていますが、カテゴリコーヒー用に別のsingle-product.phpテンプレートが必要な場合、これをどのように実装しますか?私はこの記事にアクセスしていません http://www.woothemes.com/support-forum/?viewtopic=83667 しかし、それは単純なWordPressのページやカテゴリで、それを行う方法ウーコマースでは?

8
Anatoliy

新しいテンプレートを作り、それに名前を付けます:taxonomy-product_cat-Your_category_product_slug.phpこれと同じくらい簡単

5
alberto

現在の製品がどの製品カテゴリであるかに応じて、single-product.phpを正しいテンプレートへのリダイレクトになるように変更できます。

そのためには、single-product.phpをテーマのwoocommerceフォルダにコピーします。 single-product-default.phpなどに名前を変更してください。別のコピーを作成してsingle-product-coffee.phpという名前を付けます。あなたはあなたがこれに加えたいと思うどんな変更でもすることができます。

それからsingle-product.phpに適切なsingle-product - something 。にリダイレクトする簡単な条件を追加することができます

if( has_term( 'coffee-maker', 'product_cat' ) ) {
    $file = 'single-product-coffee.php';
} else {
    $file = 'single-product-default.php';
}

global $woocommerce;

load_template( $woocommerce->template_url . $file );
3
helgatheviking

製品IDを使ってsingle-product.phpにリダイレクトしました。

次に、single-product-product1.phpやデフォルトのもの(single-product-default.phpなど)のように、上書きされたwoocommerceフォルダ(../your-theme/woocommerce/)にさまざまな商品テンプレートを作成しました。前のsingle-product.php).

if($post->ID == '103'){
wc_get_template_part( 'single-product-product1' ); 
} else{
wc_get_template_part( 'single-product-default' );
}
2
Gecko Room

テーマのwoocommerceテンプレートに 'content-single-product - {$ product_cat} .php'という名前の商品のテンプレートを作成し、商品名のテンプレートを検索する 'wc_get_template_part'フィルタを追加することでこれを実現しました(Woocommerce 2.1)。カテゴリー。これで、商品カテゴリごとにcontent-single-productテンプレートを上書きできます。

function my_custom_product_template($template, $slug, $name) {
    if ($name === 'single-product' && $slug === 'content') {
        global $product_cat;
        $temp = locate_template(array("{$slug}-{$name}-{$product_cat}.php", WC()->template_path() . "{$slug}-{$name}-{$product_cat}.php"));
        if($temp) {
           $template = $temp;
        }
    }
    return $template;
}

add_filter('wc_get_template_part', 'my_custom_product_template', 10, 3);
0
benedict_w