如何在WordPress Woo Commerce中使用分页获取所有产品

时间:2018-10-05 05:35:52

标签: wordpress pagination product

也许这个问题已经问了,但这对我的问题没有帮助。

正在为我的 WordPress 项目创建一个update。因此,我想发送API以获取所有具有分页功能的产品。

我使用以下代码获取产品列表:

android / all_products.php

API

我有所有产品,但我想展示带有分页的产品。

  

注意:所有API都写在android文件夹中。

谢谢。

3 个答案:

答案 0 :(得分:0)

如果您要创建API,则只需使用Woocommerce其余的API(它们是wordpress中提供的内置函数),请在下面的url中使用,它将为您提供带有很多选项的产品列表:

{{your_url}}/wp-json/wc/v2/products

转到wp-admin并转到Woocommerce->设置-> API

->启用rest API ->转到“密钥/应用”,然后创建秘密密钥和私有密钥(复制密钥)

然后在上面的URL中添加它,以将其用于具有私钥和私钥的o_auth的应用程序中。

对于所有woocommerce API'shttps://woocommerce.github.io/woocommerce-rest-api-docs/#retrieve-a-product

,请参见此链接

答案 1 :(得分:0)

最后,我创建一个代码并使用API​​发送日期。

 <?php
    require_once('../wp-load.php');
    $args = array(
        'post_type'      => 'product',
        'posts_per_page' => -1
    );

$brand_product_list = new WP_Query( $args);
    $pagination_count = 1;       
    while($brand_product_list->have_posts()) : $brand_product_list->the_post(); 

        $pagination_count++;

    endwhile; wp_reset_query();
//echo'<pre>';print_r($pagination_count/12); exit;
wp_reset_query();   
?>

<?php
    $pagination = round($pagination_count/12);
    for($i=1;$i<=$pagination;$i++)
    {
        $pagination_no[] = $i;
    ?>
    <!-- <a class="product-category-view-all" href="?pagination=<?php echo $i; ?>"><?php echo $i; ?></a> -->
    <?php } ?>

<?php
    $paged = (get_query_var('paged')) ? get_query_var('paged') : $_GET['pagination'];

    $args = array(
        'post_type' => 'product',
        'paged' => $paged,
        'posts_per_page' => 12,
    );
    $wp_query = new WP_Query($args);

    while($wp_query->have_posts()) : $wp_query->the_post(); 

        $product_data = wc_get_product( $post->ID );
        if(!empty(get_the_post_thumbnail_url($product_data->get_id())))
        {
            $img = get_the_post_thumbnail_url($product_data->get_id());
        }
        else
        {
            $img = "";
        }

        $product_list[] = array(
            'product_id' => $product_data->get_id(),
            'product_name' => $product_data->get_title(),
            'product_regular_price' => $product_data->get_regular_price(),
            'product_sale_price' => $product_data->get_sale_price(),
            'product_price' => $product_data->get_price(),
            'img' => $img,
            'rating' => $product_data->get_average_rating(),
            'stock_quantity' => $product_data->get_stock_quantity(),
            'stock' => $product_data->is_in_stock(),
        );
    endwhile; wp_reset_query();
    $data[] = array(
        'pagination' => $pagination_no,
        'product_list' => $product_list
    );

    //echo json_encode($peoduct_list, $pagination)
    echo json_encode($data)
?>

答案 2 :(得分:0)

以下分页代码用于显示下一个产品,也可以通过应用相同的方法来显示下一个产品

func checkError(err *error) (result bool, err_msg *error) {
    if err != nil {
        return false, err
    } else {
        return false, nil
    }
}