wordpress-theming - 在 Woocommerce 商店页面上将所有产品与其类别分开

标签 wordpress-theming wordpress woocommerce

我需要将 woocommerce 商店页面上的所有产品分类。默认情况下,即使属于不同类别的产品都出现在同一个列表中。将每个类别放在类别标题下的单独列表中会很棒。

最佳答案

这样做的唯一方法是复制和编辑模板文件或使用 Hook 。我最喜欢的方法是使用钩子(Hook),因为当他们进行插件更新时,它的侵入性更小。首先,您要确保将 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");


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"]

关于wordpress-theming - 在 Woocommerce 商店页面上将所有产品与其类别分开,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16426459/

相关文章:

wordpress - 显示 WordPress 上帖子的浏览次数

WordPress 删除摘录过滤器

css - Wordpress 文件 functions.php 未加载 style.css

php - 我可以将 WordPress 插件连接到多个 mysql 数据库吗?

wordpress - 按类别 ID 获取产品

php - 如何获取当前订单项的产品类别?

php - Wordpress:如何将 get_the_post_thumbnail 与 $wpdb->get_results 一起使用

css - 元素下方的背景颜色和背景图片

javascript - 如何将多个跨度转换为图像

php - 为 WooCommerce 单品添加图片文件上传字段