【发布时间】:2015-08-11 21:16:31
【问题描述】:
我有一个使用一个元键('countdown_date'or'hour')的 Woocomerce 查询。
它按自定义'meta_key' => 'countdown_date' 或 'hour' 和orders them using 'orderby' => 'meta_value_num' 对产品进行排序。
我需要将两个meta_key's 连接在一起。 ('hour' 键只返回 24hr 时间的前两个整数)。
需要结果,产品按两个自定义字段countdown_date和小时
排序$args = array(
'posts_per_page' => 20,
'tax_query' => array(
'relation' => 'AND',
array(
'taxonomy' => 'product_cat',
'field' => 'slug',
'terms' => 'live-events'
)),
'post_type' => 'product',
'meta_key' => 'countdown_date',
// need to add second meta key here 'meta_key' => 'hour',
'orderby' => 'meta_value_num',
'order' => 'ASC'
);
$the_query = new WP_Query( $args );
我查看了大量类似的问题,但没有任何结果。
两个循环似乎有点矫枉过正,添加 meta_query 对我不起作用。
任何帮助都会很棒。 :)
@Rene_Korss 以下答案中的完整工作代码
我能帮我把它添加到functions.php,以便存档的排序方式与自定义循环相同。
以下是我正在使用的功能的简化版本。我也需要在这里添加两个meta_key。
add_filter('woocommerce_get_catalog_ordering_args','wdm_change_ordering',10,1);
function wdm_change_ordering($args) {
if(is_product_category()) {
$args['meta_key'] = 'countdown_date';
// need to add second meta key here $args['meta_key'] = 'hour',
$args['orderby'] = 'meta_value';
$args['order'] = 'ASC';
}
return $args;
}
【问题讨论】:
-
我一直在寻找一个小时来尝试在
woocommerce_get_catalog_ordering_args挂钩中找到它。令人惊讶的是,这并不简单。
标签: php wordpress woocommerce