最快的方法:计算WooCommerce中的所有产品(包括变体)

时间:2016-07-02 12:09:03

标签: php wordpress woocommerce

我想知道是否存在更快的方法来计算WooCommerce中的所有产品(及其子变量),而不是以下代码示例:

function total_product_count() {
    $product_count = 0;

    $args = array(
        'post_type' => 'product',
        'posts_per_page' => -1
    );

    /* Initialize WP_Query, and retrieve all product-pages */
    $loop = new WP_Query($args);

    /* Check if array contains any posts */
    if ($loop->have_posts()): 
        while ($loop->have_posts()): 
            $loop->the_post();
            global $product;

            /* Count the children - add count to product_count */
            product_count += count($product->get_children());

        endwhile;

    endif;

    return $product_count;
}

在我的本地XAMPP网络服务器上,该功能在3秒内执行(有253个产品),这太长时间了。该函数返回1269。

2 个答案:

答案 0 :(得分:-1)

作为您的命名

  

$ loop = new WP_Query($ args);

试试这段代码

$loop->post_count;
 while ($loop->have_posts()){
   global $product;
   /* Count the children - add count to product_count */
    $loop->post_count += count($product->get_children());

 }

答案 1 :(得分:-1)

WP_Query有一个属性,可以为您提供与当前查询参数匹配的帖子数量:

function total_product_count() {
    $args = array( 'post_type' => 'product', 'posts_per_page' => -1 );

    $products = new WP_Query( $args );

    return $products->found_posts;
}