【发布时间】:2019-11-27 21:21:29
【问题描述】:
我正在尝试按长度和宽度订购我的产品,它首先按长度排序,如果两个产品具有相同的值,它将按宽度排序(依此类推)。如果我能先让它工作,我想增加高度。
到目前为止,我遇到的问题是它按长度和仅按长度订购产品(加上一个错误,即使长度也不正确,即产品订单是 2.1、2 和 2.5)。
这是我从查询中得到的:
function woocommerce_catalog_orderby( $args ) {
$args['meta_query'] = array(
'relation' => 'AND',
'length_clause' => array(
'key' => '_length',
'type' => 'DECIMAL',
'orderby' => 'meta_value_num',
),
'width_clause' => array(
'key' => '_width',
'type' => 'DECIMAL',
'orderby' => 'meta_value_num',
),
);
$args['orderby'] = array(
'length_clause' => 'ASC',
'width_clause' => 'ASC',
);
return $args;
}
add_filter('woocommerce_get_catalog_ordering_args', 'woocommerce_catalog_orderby');
我确信我错过了一些我目前看不到的明显东西。非常感谢任何帮助!
【问题讨论】:
-
此搜索的另一个死胡同。为什么按两个不同的元键排序如此困难?
-
@freethebees 从我读过的所有内容来看,使用 Wordpress 的过滤器是不可能的。我还没有开始走这条路(我一直在推迟,tbh),但我认为下一步就是使用修改后的 SQL 查询:codex.wordpress.org/Class_Reference/…。 ://
标签: wordpress woocommerce