我需要将woocommerce商店页面上拥有的所有产品分类。默认情况下, 即使产品属于不同类别, 所有产品都位于同一列表中。将每个类别放在类别标题下的单独列表中会很棒。
#1唯一的方法是复制和编辑模板文件或使用挂钩。我最喜欢的方法是使用钩子, 因为钩子在执行插件更新时不会那么麻烦。首先, 你要确保已将woocommerce设置设置为在产品页面上显示类别。然后打开你的主题functions.php文件, 并将其放入其中:
function order_by_multiple() {
if(function_exists('is_woocommerce')){
if(is_woocommerce()||is_search()||is_product_category())return ' tm.meta_value, post_title';
}
}
function product_order_join($join){
global $wpdb;
if(function_exists('is_woocommerce')){
if(is_woocommerce()||is_search()||is_product_category()){
$join.= " JOIN " . $wpdb->
term_relationships ." tr ON " . $wpdb->
posts . ".id = tr.object_id JOIN " . $wpdb->
term_taxonomy ." tt ON tt.term_taxonomy_id = tr.term_taxonomy_id AND tt.taxonomy ='product_cat' JOIN " . $wpdb->
terms ." t ON tt.term_id = t.term_id
join " . $wpdb->
woocommerce_termmeta ." tm on tm.woocommerce_term_id = t.term_id and tm.meta_key = 'order' ";
}
}
return $join;
}
add_filter("posts_join", "product_order_join");
if(!is_admin())add_filter("posts_orderby", "order_by_multiple");
用任何分类法/属性替换” product_cat” 。对于属性, woocommerce在分类名称前广告” pa_” 。因此, 如果属性的名称是流派, 则可以将product_cat替换为pa_genre。
另外, 你可能可以替换
add_filter("posts_orderby", "order_by_multiple");
【在Woocommerce商店页面上将所有产品分开分类】与
add_filter('woocommerce_get_catalog_ordering_args', "order_by_multiple");
我只是还没有机会进行测试。
最后, 你可以忽略几乎所有这些内容, 并使用woocommerce的短代码:
[product_category category="category-slug-name-here" per_page="12" columns="4" orderby="date" order="desc"]
#2我只是将其直接插入页面中, 并且效果很好-
<
?php echo do_shortcode( '[product_category category="category name"]');
?>
推荐阅读
- 短代码在WordPress自定义主题中不起作用
- 在PHP echo中运行PHP()
- 在WordPress中激活主题激活函数
- 在WordPress中使用MySQL查询检索小部件数据
- 解决WordPress子主题上与父主题的javascript冲突
- 自适应网站只能在台式机上运行,??而不能在移动设备上运行
- 向下滚动时调整菜单大小
- #私藏项目实操分享# 什么是 SAP HANA XS JavaScript
- netty系列之:让TCP连接快一点,再快一点