• Вопрос без рабочей ссылки на проблему считается риторическим. Без ссылки и скриншота - провокацией!
  • Темы озаглавленные с маленькой буквы или капсом удаляются без предупреждения!

Как вывести количество всех добавленных категорий магазина?

Shadow

Новичок
Добрый день, подскажите пожалуйста, как можно вывести количество добавленных категорий магазина? Нашел здесь код, который выводит количество добавленных товаров:
Код:
add_action( 'hook_count_all_products', 'my_count_all_products');
function my_count_all_products() {
    $args = array( 'post_type' => 'product', 'post_status' => 'publish', 'posts_per_page' => -1 );
    $products = new WP_Query( $args );
    echo '' . $products->found_posts . '';   
}


А как теперь таким же образом вывести количество категорий? Например, у меня сейчас есть 4 категории и надо вывести это количество
 

ADv

Гуру
Местный
Добрый день, подскажите пожалуйста, как можно вывести количество добавленных категорий магазина? Нашел здесь код, который выводит количество добавленных товаров:
Код:
add_action( 'hook_count_all_products', 'my_count_all_products');
function my_count_all_products() {
    $args = array( 'post_type' => 'product', 'post_status' => 'publish', 'posts_per_page' => -1 );
    $products = new WP_Query( $args );
    echo '' . $products->found_posts . '';
}


А как теперь таким же образом вывести количество категорий? Например, у меня сейчас есть 4 категории и надо вывести это количество
Попробуйте это (закинуть в functions.php и юзать как шорткод):
Код:
add_shortcode( 'products-counter', 'products_counter' );
function products_counter( $atts ) {
    $atts = shortcode_atts( [
        'category' => '',
    ], $atts );

    $taxonomy = 'product_cat';
    if ( is_numeric( $atts['category'] ) ) {
        $cat = get_term( $atts['category'], $taxonomy );
    } else {
        $cat = get_term_by( 'slug', $atts['category'], $taxonomy );
    }

    if ( $cat && ! is_wp_error( $cat ) ) {
        return $cat->count;
    }
    return '';
}
Юзать:

По ID категории
[products-counter category="19"]

По слагу категории
[products-counter category="hoodies"]
 
Последнее редактирование:

Shadow

Новичок
Попробуйте это (закинуть в functions.php и юзать как шорткод):
Код:
add_shortcode( 'products-counter', 'products_counter' );
function products_counter( $atts ) {
    $atts = shortcode_atts( [
        'category' => '',
    ], $atts );

    $taxonomy = 'product_cat';
    if ( is_numeric( $atts['category'] ) ) {
        $cat = get_term( $atts['category'], $taxonomy );
    } else {
        $cat = get_term_by( 'slug', $atts['category'], $taxonomy );
    }

    if ( $cat && ! is_wp_error( $cat ) ) {
        return $cat->count;
    }
    return '';
}
Юзать:

По ID категории
[products-counter category="19"

По слагу категории
[products-counter category="hoodies"
Спасибо, но уже получилось всё сделать по другому
Вот код, может кому нибудь понадобиться:
Код:
<?php
                        $args = array(
                                'taxonomy' => 'product_cat',
                                'number' => 0,
                                'hide_empty' => false,
                            );

                            $product_categories = get_terms( $args );
                            $count = count($product_categories);
                        ?>


                    <div class="work-goods_parameters-allgoods indent">
                        <button type="button" class="btn btn-default dropdown-toggle" data-toggle="dropdown">Категории
                            <span class="count-categories"><?=$count?></span> <span class="caret"></span></button>
                        <ul class="dropdown-menu scrollable-menu" role="menu">
                        <?php
                            if ( $count > 0 ){
                                foreach ( $product_categories as $product_category ) {
                                    $item='<li><a href="' . get_term_link( $product_category ) . '">' . $product_category->name .  ' ' . $product_category->count .  '</a></li>';
                                    echo $item;
                                }
                            }   
                        ?>
                        </ul>

                    </div>
 
Сверху Снизу