主菜单中的WooCommerce产品类别

时间:2014-08-09 10:22:11

标签: woocommerce categories

我正在使用已定义的3级别类别的WooCommerce。

一切运作良好,类别和子类别列表在新产品创建页面的产品类别页面中结构良好,菜单编辑页面除外。

我有所有类别和子类别,但没有原始结构(其中一些保留了它们的结构,但其他所有结果都对齐到一个级别),所以当将它们添加到菜单中时,我将无法分辨哪个子类别属于哪个类别。

有没有办法刷新或重新映射完整的结构?

2 个答案:

答案 0 :(得分:2)

首先,您需要在WordPress管理菜单,空白菜单中创建一个菜单。现在转到function.php文件(主题文件),在其中添加以下代码。

您可以从此功能获取产品类别列表:

function get_product_terms( $term_id ) {    
        $html = '';    
        $args = array( 'hide_empty' => 0, 'parent' => $term_id );    
        $terms = get_terms('product_cat', $args);

        foreach ($terms as $term) {    
            $html .= '<li';    
            if( $term_id == 0 ) {    
                $html .= ' class="top_li"';    
            }

            $html .= '><a href="'.get_term_link($term->slug, 'product_cat').'">' . $term->name . '</a>';    

            if( $list = get_product_terms( $term->term_id )) {    
                $html .= '<ul class="second_level">'.$list.'</ul>';    
            }

            $html .= '</li>';    
        }    
        return $html;    
    }

您可以使用此功能将产品类别添加到菜单中:

// Filter wp_nav_menu() to add additional links and other output
function new_nav_menu_items($items) {
    // Woo function

    /*//product_cat
    $terms = get_terms( 'product_cat', $args );
    print_r($terms);*/
    if( $list = get_product_terms( 0 )) {



    $menu1link = '<li class="home"><a href="' . home_url( '/' ) . '">' . __($list) . '</a></li>';
    $homelink = '<li class="home"><a href="' . home_url( '/' ) . '">' . __('Home') . '</a></li>';
    // add the home link to the end of the menu
    $items = $items . $homelink;
    $items = $items .$menu1link;
    }
    return $items;

}
add_filter( 'wp_nav_menu_items', 'new_nav_menu_items' );

答案 1 :(得分:0)

Wordpress不允许菜单从其他组件继承结构。

菜单应该具有独立,独立,结构,并且不应该对您的类别结构有任何了解。

所以答案是否定的,你必须自己做。您可以构建一个脚本,其中包含菜单中每个添加的类别,最终使用相同的结构,但我不建议这样做。由于错误的可能性很大。