我要做的事情
我的目标是在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来更改宽度。