Woocommerce定制产品循环每页发布

时间:2016-06-01 11:11:23

标签: php wordpress woocommerce e-commerce

我使用" WP_Query"创建了一个自定义产品循环。在Table中显示Woocommerce产品数据及其工作正常。但'posts_per_page' => -1,未显示样本类别中的所有产品。

目前,我有17个样品类别的产品。它只展示了10种产品。 我检查了问题,发现" WP_Query"用在帖子中 这是从每页的帖子值 Setiing>阅读>博客页面最多显示

enter image description here

我如何制作' posts_per_page' => -1即可在不更改每页Wordpress Post设置的情况下获取更多10个产品。提前致谢。 以下是我的完整代码。

<?php // The args for the loop
    $args = array(
        'posts_per_page' => -1,
        'tax_query' => array(
            'relation' => 'AND',
            array(
                'taxonomy' => 'product_cat',
                'field' => 'slug',
                'terms' => 'sample' // Your category name here
            )
        ),
        'post_type' => 'product',
        'orderby' => 'title',
    ); ?>
    <?php
        $loop = new WP_Query($args); // The Loop
        if ( $loop->have_posts() ) {
            while ( $loop->have_posts() ) : $loop->the_post(); ?>
        <table> <!-- Fetching woocommerce data in table -->
        <tr>
          <td><?php the_content(); ?></td> <!-- Content -->
          <td><?php the_title(); ?></td> <!-- Title -->
          <td><?php echo ( $sku = $product->get_sku() ) ? $sku : __( 'N/A', 'woocommerce' ); ?></td> <!-- SKU -->
          <td><?php   echo $product->get_price_html(); ?></td> <!-- Price -->
          <td>
           <?php global $product; // For Adding Add to Cart button in loop
              echo apply_filters( 'woocommerce_loop_add_to_cart_link',
              sprintf( '<a href="%s" rel="nofollow" data-product_id="%s" data-product_sku="%s" class="button %s product_type_%s">%s</a>',
              esc_url( $product->add_to_cart_url() ),
              esc_attr( $product->id ),
              esc_attr( $product->get_sku() ),
              $product->is_purchasable() ? 'add_to_cart_button' : '',
              esc_attr( $product->product_type ),
              esc_html( $product->add_to_cart_text() )
              ), $product ); 
            ?>
        </td>
        </tr>
        </table>
        <?php
            endwhile;
        } else {
            echo __( 'No products found' );
        }
        wp_reset_postdata();
    ?>

3 个答案:

答案 0 :(得分:1)

WooCommerce使用与博客帖子相同的“每页帖子数”设置。

您可以通过这种方式对其进行修改

add_filter( 'loop_shop_per_page', 'so_27395967_products_per_page' );
function so_27395967_products_per_page(){
    return 12;
}

答案 1 :(得分:0)

请使用以下代码

'posts_per_page' => -1,

而不是

$maxposts = get_option('posts_per_page');
'posts_per_page' => $maxposts,

答案 2 :(得分:0)

尝试以下代码段

add_filter( 'loop_shop_per_page', create_function( '$cols', 'return 30;' ), 20 );

参考 http://www.boopathirajan.com/increasechange-product-per-page-limit-woocommerce-product-loop/