获取产品父类别的类别插件

时间:2021-07-09 作者:Joe26

我想在单个产品页面中添加一个后退按钮,以便在单击时页面将重定向到产品的相关父类别页面。我已经使用以下代码成功地为一个类别完成了这项工作。单击“返回设计”按钮后,将页面重定向到衬衫类别。

add_action( \'woocommerce_before_single_product\', \'content_before_addtocart_button\' );

function content_before_addtocart_button() {
    global $post;

    $terms = get_the_terms( $post->ID, \'product_cat\' );
    
    foreach ($terms as $term) {
        if( $term->slug === \'shirts\')
            echo \'<div class="content-section"><a href="\' . esc_url( get_term_link( $term->term_id, \'product_cat\' ) ) . \'">\' . \'Back to Other Designs\'. \'</a></div>\';
    }
}
我想修改它,这样它将自动获取产品的当前类别页面链接,而无需像这样手动添加它们,并相应地重定向页面。非常感谢您在这方面提供的任何帮助。提前谢谢。

1 个回复
最合适的回答,由SO网友:Tanmay Patel 整理而成

输入以下代码functions.php 试试看。

add_action( \'woocommerce_before_single_product\', \'content_before_addtocart_button\' );
function content_before_addtocart_button() {
    global $post;
    $categories = array();
    $taxonomies = get_terms( array(
        \'taxonomy\' => \'product_cat\',
        \'hide_empty\' => false,
        \'parent\'   => 0
    ));
    if ( !empty($taxonomies) ) :
        foreach( $taxonomies as $taxonomy ) {
            $categories[] = $taxonomy->slug; 
        }
    endif;
    $terms = get_the_terms( $post->ID, \'product_cat\' );
    if($terms[0]->parent != 0){
        $parent_category = get_term( $terms[0]->parent, \'product_cat\' );
        $parent_category_slug = $parent_category->slug;
        foreach ($terms as $term) {
            if(in_array( $parent_category_slug ,$categories )){
                echo \'<div class="content-section"><a href="\' . esc_url( get_term_link( $term->term_id, \'product_cat\' ) ) . \'">\' . \'Back to Other Designs\'. \'</a></div>\';
            }
        }
    }else{
        echo \'<div class="content-section"><a href="\' . esc_url( get_term_link( $terms[0]->term_id, \'product_cat\' ) ) . \'">\' . \'Back to Other Designs\'. \'</a></div>\';
    }
}

相关推荐

“调用数组上的成员函数Have_Posts()”在Have_Posts()上出错;

我犯了一个最奇怪的错误。尝试显示自定义循环时,出现以下错误:Fatal error : Uncaught Error: Call to a member function have_posts() on array in /.../custom-page.php:42 Stack trace: #0 /.../wp-includes/template-loader.php(106): include() #1 /.../wp-blog-header.php(19): require_once(\'