WooCommerce子类别(类别类别) - 一个PHP的故事,愚蠢的功能和挫折

时间:2013-07-01 07:00:58

标签: php wordpress woocommerce

标题应该让你对我的不幸事件有一个很好的了解。我正在研究一个用wordpress制作并使用WooCommerce的项目,经过大量的头脑风暴和想到可能的妥协后,我已经达到了这样的程度,我非常肯定我必须进入PHP代码来方便地解决问题

问题是我有以下网站:

enter image description here

您可能已经注意到,所有产品类别都有一个混搭,我需要做的是将它们分为两大类:食品和饮料。我转向了woocommerce可以做的内置功能,我只是无法让它工作,所以我想我必须编写自己的功能。现在,如果有人告诉我,如果你们中的任何一个人知道我能用我所拥有的东西来实现它我会很高兴。如果不是我需要的是创建一个功能,实际上可以选择属于父类别的所有类别或类似的东西。

public function product_categories( $atts ) {
        global $woocommerce_loop;

        extract( shortcode_atts( array (
            'number'     => null,
            'orderby'    => 'name',
            'order'      => 'ASC',
            'columns'    => '4',
            'hide_empty' => 1,
            'parent'     => ''
            ), $atts ) );

        if ( isset( $atts[ 'ids' ] ) ) {
            $ids = explode( ',', $atts[ 'ids' ] );
            $ids = array_map( 'trim', $ids );
        } else {
            $ids = array();
        }

        $hide_empty = ( $hide_empty == true || $hide_empty == 1 ) ? 1 : 0;

        // get terms and workaround WP bug with parents/pad counts
        $args = array(
            'orderby'    => $orderby,
            'order'      => $order,
            'hide_empty' => $hide_empty,
            'include'    => $ids,
            'pad_counts' => true,
            'child_of'   => $parent
        );

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

        if ( $parent !== "" )
            $product_categories = wp_list_filter( $product_categories, array( 'parent' => $parent ) );

        if ( $number )
            $product_categories = array_slice( $product_categories, 0, $number );

        $woocommerce_loop['columns'] = $columns;

        ob_start();

        // Reset loop/columns globals when starting a new loop
        $woocommerce_loop['loop'] = $woocommerce_loop['column'] = '';

        if ( $product_categories ) {

            woocommerce_product_loop_start();

            foreach ( $product_categories as $category ) {

                woocommerce_get_template( 'content-product_cat.php', array(
                    'category' => $category
                ) );

            }

            woocommerce_product_loop_end();

        }

        woocommerce_reset_loop();

        return '<div class="woocommerce">' . ob_get_clean() . '</div>';
    }

我认为这是一种不起作用的威胁性WooCommerce功能。救命。请帮帮我:(

1 个答案:

答案 0 :(得分:2)

如何使用WooCommerce的内置[product_categories]短代码?您可以通过id=""属性传递所需的类别。