编程语言
首页 > 编程语言> > php – Woocommerce breadcrumbs多个类别

php – Woocommerce breadcrumbs多个类别

作者:互联网

我在wordpress有电子商务网站.里面有很多产品&许多产品属于600多个类别.电源银行属于汽车,IT,媒体等.我的问题是,当我去那里的产品细节时,它默认只选择一个类别,无论是通过IT类别在最后它显示我这样的汽车Home / Shop / industry / Automobile / 600 mah Power Bank.但我通过IT去了这个产品,所以它应该像我这样的Home / Shop / industry / IT / 600 mah Power Bank.
如何从上一页来到我的路径?

解决方法:

如果您正在使用Woocommerce,您可以直接使用以下内容,如果不是,它将需要调整,但您明白了:

elseif ( is_single() && ! is_attachment() ) {

if ( get_post_type() == 'product' ) {

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==false){
                        $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;

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

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

标签:wordpress,php,woocommerce,breadcrumbs
来源: https://codeday.me/bug/20190708/1402767.html