【问题标题】:Woocommerce category order by menu using get_categories使用 get_categories 按菜单排序的 Woocommerce 类别
【发布时间】:2013-09-13 19:20:40
【问题描述】:

我正在调用 Woocommerce 类别的列表,并试图让它们以自定义的、darg-and-drop 的顺序显示,但无济于事。通常的 'orderby' => 'menu_order' 不起作用。代码如下:

         <?php
            $args=array(
                'orderby' => 'menu_order',
                'order' => 'ASC',
                'child_of' => 13,
                'hide_empty' => 0,
                'taxonomy' => 'product_cat'
            );
            $categories=get_categories($args);
                foreach($categories as $category) {  
                    echo "<li class='filter-option " . $category->slug . "'><a href='#' data-filter-value='." . $category->slug . "'>";
                    echo $category->name;
                    echo "</a></li>";
                } 
            ?>

任何帮助将不胜感激

【问题讨论】:

  • 原来我只需要在查询中添加'hierarchical' =&gt; 1。全部排序。

标签: php wordpress get woocommerce categories


【解决方案1】:

请试试这个...

<?php $wcatTerms = get_terms('product_cat', array('hide_empty' => 0, 'orderby' => 'ASC',  'parent' =>0)); //, 'exclude' => '17,77'
                foreach($wcatTerms as $wcatTerm) : 
                    $wthumbnail_id = get_woocommerce_term_meta( $wcatTerm->term_id, 'thumbnail_id', true );
                    $wimage = wp_get_attachment_url( $wthumbnail_id );
                ?>
                <ul>
                    <li class="libreak"><?php if($wimage!=""):?><img src="<?php echo $wimage?>"><?php endif;?></li>
                    <li>
                        <a href="<?php echo get_term_link( $wcatTerm->slug, $wcatTerm->taxonomy ); ?>"><?php echo $wcatTerm->name; ?></a>
                        <ul class="wsubcategs">
                        <?php
                        $wsubargs = array(
                           'hierarchical' => 1,
                           'show_option_none' => '',
                           'hide_empty' => 0,
                           'parent' => $wcatTerm->term_id,
                           'taxonomy' => 'product_cat'
                        );
                        $wsubcats = get_categories($wsubargs);
                        foreach ($wsubcats as $wsc):
                        ?>
                            <li><a href="<?php echo get_term_link( $wsc->slug, $wsc->taxonomy );?>"><?php echo $wsc->name;?></a></li>
                        <?php
                        endforeach;
                        ?>  
                        </ul>
                    </li>
                </ul>
            <?php 
                endforeach; 
            ?>

【讨论】:

    【解决方案2】:

    您正在寻找 get_categories() 参数的参数是

    'menu_order' => 'asc'
    

    例如。我用于返回前三个根 Woocommerce 类别且不包括未分类的函数如下所示:

    // load first three categories from Woocommerce
    function my_get_woocommerce_categories() {
    	$args = array(
    		'taxonomy' => 'product_cat',
    		'parent' => 0,
    		'hide_empty' => false,
    		'number' => 3,
    		'show_uncategorized' => false,
    		'menu_order' => 'asc',
    	);
    
    	$categories = get_categories( $args );
    
    	return $categories;
    }

    【讨论】:

    • 这确实奏效了...本来想大骂这不是使用“menu_order”的正确方法,但似乎 woocommerce 开发人员不这么认为。
    • 为我工作,OP 应该勾选这个
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多