【问题标题】:WooCommerce product categories in main menu主菜单中的 WooCommerce 产品类别
【发布时间】:2014-08-09 10:22:10
【问题描述】:

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

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

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

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

【问题讨论】:

    标签: woocommerce categories


    【解决方案1】:

    首先您需要在 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' );
    

    【讨论】:

    • 我没有看到菜单名称。您能否提及我应该在管理员中创建的菜单名称或评论我们获得空白菜单名称以插入所有菜单列表的位置?
    【解决方案2】:

    Wordpress 不允许菜单从另一个组件继承结构。

    菜单应该有一个独立的、独立的结构,并且不应该知道你的类别结构。

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-07-16
      • 1970-01-01
      • 1970-01-01
      • 2019-06-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多