Woocommerce面包屑多个类别

SuR*_*tor 5 php wordpress breadcrumbs woocommerce

我在wordpress中有一个电子商务网站。其中有很多产品,很多产品属于多个类别,例如600兆赫。移动电源属于汽车,IT,媒体等行业。我的问题是,当我转到那里的产品详细信息时,默认情况下仅选择一个类别不管最后是否通过IT类别,它都向我显示这样的汽车,如Home / Shop / industry / Automobile / 600 mah Power Bank。但是我通过IT购买了此产品,因此应该向我显示此首页/商店/行业/ IT / 600兆瓦移动电源。如何获取上一页的路径?

Ric*_*ich 3

如果您正在使用 Woocommerce,您可以直接使用以下内容,如果没有,则需要进行调整,但您明白了:

if (get_post_type() == 'product' && is_single() && ! is_attachment()) {
    echo $prepend;

    if ($terms = get_the_terms($post->ID, 'product_cat')) {
        $referer = wp_get_referer();
        foreach ($terms as $term) {
            $referer_slug = (strpos($referer, $term->slug));

            if ($referer_slug == true) {
                $category_name = $term->name;
                $ancestors = get_ancestors($term->term_id, 'product_cat');
                $ancestors = array_reverse($ancestors);

                foreach ($ancestors as $ancestor) {
                    $ancestor = get_term($ancestor, 'product_cat');

                    if (! is_wp_error($ancestor) && $ancestor) {
                        echo $before . '<a href="' . get_term_link($ancestor->slug, 'product_cat') . '">' . $ancestor->name . '</a>' . $after . $delimiter;
                    }
                }
                echo $before . '<a href="' . get_term_link($term->slug, 'product_cat') . '">' . $category_name . '</a>' . $after . $delimiter;
            }
        }
    }

    echo $before . get_the_title() . $after;
}
Run Code Online (Sandbox Code Playgroud)

这里的主要工作是通过wp_get_referer获取访问者导航到的产品的引用 URL 来完成的。其余代码检查 URL 中是否包含有效类别,并在面包屑中使用它。

有关更多信息,请参阅 Jonathon Js 的帖子http://www.cryoutcreations.eu/forums/t/wrong-breadcrumbs-displayed