Wooccommerce-product-archive.php和taxonomy-product_cat.php的不同


Woocommerce - Different product row setting for product-archive.php and taxonomy-product_cat.php

我要做的事情

我的目标是在archive-product.php上每行显示与分类法-product_cat.php不同数量的产品。

到目前为止我做了什么

我按原样使用archive-product.php,在需要的地方挂起,并使用下面的过滤器显示类别拇指,每行5个。

function jm_loop_columns() {
    return 5; // 5 products per row
}
add_filter( 'storefront_loop_columns', 'jm_loop_columns', 999 ); 

我已经将taxonomy-product_cat.php复制到我的子主题中,因为样式和布局在这个页面上更为复杂,在这里我希望每行只显示3个产品。

选项

我可以使用第n个子选择器来达到同样的效果,但我更愿意避免只使用CSS。

根据页面模板的不同设置,应用上述过滤器的最佳方式是什么?在archive-product.php中返回5,在taxonomy-product_cat.php 中返回3

我正在努力解决的许多想法之一是用is_page或is_page_template编写一个条件函数,为每个模板加载不同的过滤器设置。

有人会建议追求这个方向吗?

使用条件标记怎么样?如果您在product_cat分类页面上,则将列数设置为3。否则,让它停留在5。

function jm_loop_columns( $columns ) {
    if ( is_tax( 'product_cat' ) ){
        $columns = 3;
    } else {
        $columns = 5;
    }
    return $columns;
}
add_filter( 'storefront_loop_columns', 'jm_loop_columns', 999 ); 

这将把第一个和最后一个类放在适当的位置,但您可能仍然需要一些CSS来更改宽度。