更改每行的产品数量,取决于Woocommerce的屏幕尺寸

时间:2018-01-30 18:22:27

标签: php wordpress woocommerce

我想更改每行的产品数量(类别页面),具体取决于屏幕尺寸。

jQuery(window).resize(function(){
   var width = jQuery(window).width();

   if(width >= 1000 && width <= 1200){
     jQuery('.sentry-product').removeClass('columns-4').addClass('columns-3');
     }
   else{
     jQuery('.sentry-product').removeClass('columns-3').addClass('columns-4');
     }
})
.resize();

我正在使用这个jQuery来改变可能的列数, 我还需要更改产品数量,

现在我正在硬编码产品数量

        function storefront_product_columns_wrapper() {
        $columns = storefront_loop_columns();
        echo '<div class="sentry-product columns-' . intval( $columns ) . '">';
    }
}

if ( ! function_exists( 'storefront_loop_columns' ) ) {
    /**
     * Default loop columns on product archives
     *
     * @return integer products per row
     * @since  1.0.0
     */
    function storefront_loop_columns() {
        return apply_filters( 'storefront_loop_columns', 4 ); // 4 products per row
    }
}

我有另一个想法, 如果我可以将产品的数量作为参数从类名中传递,它将解决问题 - 返回apply_filters('storefront_loop_columns',X);

我不明白我是否能做到,有些想法?

1 个答案:

答案 0 :(得分:0)

这是如何使用三列,在600px或更小的视口上减少到两个;

@media screen and (max-width: 600px) {

.woocommerce.columns-3 ul.products li.product, .woocommerce-page.columns-3 ul.products li.product {
   width: 45%; /* was 30.75% */
}

.woocommerce ul.products.columns-3 li.product, .woocommerce-page ul.products.columns-3 li.product {
  width: 45%; /* for category pages */
}

.woocommerce ul.products li.first, .woocommerce-page ul.products li.first {
  clear: none; /* was both */
}

.woocommerce ul.products li.last, .woocommerce-page ul.products li.last {
  margin-right:3.8%; /* was 0 */
}

显然,您必须针对不同数量的列或断点进行调整。而且我即将为480px写另一套,所以我可以在手机上每行一个产品。这个CSS来自woo commerce的CSS(或使用!important