【问题标题】:Get a custom array of the top level products categories in WooCommerce在 WooCommerce 中获取顶级产品类别的自定义数组
【发布时间】:2017-08-17 11:01:29
【问题描述】:

有什么方法可以在 woocomerce 中获取顶级产品类别列表,以便在我的主题的自定义部分中显示它们

这是我使用的代码,但它返回所有类别:

function getCategoriesList() {

    // prior to wordpress 4.5.0
    $args = array(
        'number'     => $number,
        'orderby'    => $orderby,
        'order'      => $order,
        'hide_empty' => $hide_empty,
        'include'    => $ids
    );

    $product_categories = get_terms( 'product_cat', $args );

    // since wordpress 4.5.0
    $args = array(
        'taxonomy'   => "product_cat",
        'child_of'   => 0,
        'number'     => $number,
        'orderby'    => $orderby,
        'order'      => $order,
        'hide_empty' => $hide_empty,
        'include'    => $ids
    );
    $product_categories = get_terms($args);

    $list = array();
    foreach( $product_categories as $cat ){ 
        $thumbnail_id = get_woocommerce_term_meta( $cat->term_id, 'thumbnail_id', true );
        $image = wp_get_attachment_url( $thumbnail_id );
        $link = get_term_link( $cat->term_id, 'product_cat' );
        $list[] = array($cat->term_id, $cat->name, $image, $link);        
    }

    return $list;

}

我最近添加了:

'child_of'   => 0 

但是没有变化。

如何使其仅适用于顶级产品类别?

【问题讨论】:

    标签: php wordpress woocommerce categories product


    【解决方案1】:

    为了让它起作用,缺少的参数只是 'parent' => 0 (但不是'child_of'

    所以你的工作代码应该是这样的(并且会正确返回你的数组:

    function getProductCategoriesList() {
    
        // since wordpress 4.5.0
        $product_categories = get_terms( $args = array(
            'taxonomy'   => "product_cat",
            'hide_empty' => false,
            'parent'     => 0,
        ) );
    
        $list = array();
    
        foreach( $product_categories as $cat ){ 
            $thumbnail_id = get_woocommerce_term_meta( $cat->term_id, 'thumbnail_id', true );
            $image = wp_get_attachment_url( $thumbnail_id );
            $link = get_term_link( $cat->term_id, 'product_cat' );
            $list[] = array($cat->term_id, $cat->name, $image, $link);        
        }
    
        return $list;
    }
    

    代码进入您的活动子主题(或主题)的 function.php 文件或任何插件文件中。

    经过测试并且可以工作

    【讨论】:

      猜你喜欢
      • 2017-11-13
      • 1970-01-01
      • 2021-11-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-06-26
      • 1970-01-01
      • 2012-11-02
      相关资源
      最近更新 更多