3

ここでまともな解決策を見つけるのに苦労したので、これについて考えるための食べ物が必要です.

woocommerce ショップ、左側 (サイドバー) のカテゴリ、および右側の製品があります。製品には複数のカテゴリを含めることができます。たとえば、商品「バーガー」は「食品」と「ファストフード」のカテゴリに属します。

左側には、「食品」と「ファーストフード」のカテゴリがあり、両方に「バーガー」が含まれています。カテゴリ「食品」に行きます。サイドバーの左側で、食品のカテゴリを次のように強調表示します。

(start loop going through categories)

 if(get_query_var('product_cat') == $cat->slug) - echo <li class="active">
 else - echo <li class="active">

(end loop)

そのため、カテゴリ「食品」が強調表示されます。次に、商品「バーガー」を選択します。ここで、商品 "Burger" はカテゴリ "Fastfood" にも含まれているため、カテゴリ "Fastfood" がアクティブとして表示されます。

アクティブなカテゴリは、商品が最初に選択されたカテゴリ (「食品」) に基づいている必要があります。「ファーストフード」カテゴリに移動して「バーガー」を選択すると、「ファーストフード」がアクティブになります。「食品」から「バーガー」を開くと、「食品」がアクティブなカテゴリになっているはずです。

すべての製品を表示するときに、パーマリンクのカテゴリを現在のカテゴリに変更しようとしています(<?php the_permalink(); ?>)が、それは正しい方法ではないように感じます。

誰かがより良い解決策を持っているかもしれません。

良い一日を!


編集:

適切なカテゴリでパーマリンクを作成できました。

$custom_permalink = get_settings('siteurl')."/".get_query_var('product_cat')."/".basename(get_permalink());

悲しいことに、これは機能しません..(「間違った」カテゴリにリダイレクトします)しかし、とにかくこのハックは好きではありません:)..


4

1 に答える 1

6

私はそれを働かせました。これは私がしたことです:

カスタム テンプレート ファイル /yourtheme/woocommerce/content-product.php で a href を変更します。

新しいパーマリンクを生成したコード (現在選択されているカテゴリを使用):

    // HOOK FOR CORRECT ACTIVE SIDEBAR ELEMENT WHEN PRODUCT HAS MULTIPLE CATEGORIES
    if(get_query_var('product_cat') == ""){
        $product_categries = get_the_terms( $post->ID, 'product_cat' );
        foreach ($product_categries as $category) {
            $cur_cat = $category->slug;
        }

        $custom_cat = $cur_cat;
    }else{
        $custom_cat = get_query_var('product_cat');
    }

    $custom_permalink = get_permalink(5).$custom_cat."/".basename(get_permalink());

また、カテゴリが設定されているかどうかも確認します (「すべての製品」を表示している場合は何もないため、この場合、製品をループして、パーマリンクで使用するカテゴリを取得します)。

ID 5 の get_permalink は基本的に私のショップ ページなので、ショップからパーマリンクを変更しても動的なままです。ここでハードコーディングされたものは好きではありません。それはすでに醜いハックだからです。

製品をラップする a href の前にこのコードを配置します。私の場合、これは 42 行目 (Woocommerce V2.0.10) にありました。次に、これを a href から変更します

<a href="<?php the_permalink(); ?>">

<a href="<?php echo $custom_permalink; ?>">

同じ問題に直面したとき、これがあなたの助けになることを願っています!

于 2013-07-09T18:59:43.260 に答える