Отображение 2-го уровня товарных категорий - PullRequest
0 голосов
/ 23 октября 2018

Не могу найти способ показать 2-й уровень категорий продуктов woocommerce в выпадающем списке.

Пока у меня есть эта

function lvl_1()
    {  
        $args = array(
            'show_option_all'    => ' ',
            'name'         => 'Marka',
            'taxonomy'     => 'product_cat',
            'orderby'      => 'name',
            'show_count'   => 0,
            'pad_counts'   => 0,
            'hierarchical' => 1,
            'hide_empty'   => 0,
            'parent'       => 0,
        );
        $lvl_1_categories = wp_dropdown_categories( $args );  

    }
    function lvl_2()
    {
        $args = array(
            'taxonomy'     => 'product_cat',           
            'parent'       => 0,
        );
        $lvl_1_categories = get_categories( $args );  
        $args2 = array(
            'show_option_all'    => ' ',
            'name'         => 'Modelis',
            'taxonomy'     => 'product_cat',
            'orderby'      => 'name',
            'show_count'   => 0,
            'pad_counts'   => 0,
            'hierarchical' => 1,
            'hide_empty'   => 0,  
            // Somewhere here i should get a value of first level elements to dispaly their childer, thats what i think.
            );
        $lvl_2_categories = wp_dropdown_categories( $args2 );  
    }

функция lvl_1 работает отлично, этопоказывает категории верхнего уровня, но есть ли способ отобразить категории 2-го уровня с помощью этой функции wp_dropdown_categories()?

1 Ответ

0 голосов
/ 23 октября 2018

поместите следующий код и получите список всех категорий.

$categories = get_categories( array(
                'type'        => 'post',
                'child_of'    => 0,
                'orderby'     => 'id',
                'order'       => 'ASC',
                'hide_empty'  => 0,
                'hierarchical'=> 0,           
                'taxonomy'    => 'category',
                'parent' => 0                                              
            ) );

$top_level_ids = [];
foreach( $categories as $category ) {
    if( ! $category->parent ) {
        $top_level_ids[] = $category->term_id;
    }
}
//print_r($top_level_ids);die;
$categories = get_categories( array(
                'type'        => 'post',
                'child_of'    => 0,
                'orderby'     => 'id',
                'order'       => 'ASC',
                'hide_empty'  => 0,
                'hierarchical'=> 0,           
                'taxonomy'    => 'category',
            ) );

foreach( $categories as $category ) {
    // Only output if the parent_id is a TOP level id
    if( in_array( $category->parent, $top_level_ids )) {
        echo $category->term_id . ', ' . $category->slug . ', ' . $category->name . '<br />';
    }
} die;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...