Wordpress - 按 meta_value_num 排序无效
Wordpress - Order by meta_value_num not working
我有一个关于我的分类术语的元数据,每次使用它们时我都会递增,如下所示:
$count = get_term_meta($id, 'used', true);
update_term_meta($id, 'used', $count ? (intval($count) + 1) : 1);
但是,当我尝试获取按此元排序的术语时,meta_value_num
似乎没有做任何事情,而且我的术语仍然被排序,就像 used meta 是一个字符串。
$terms = get_terms([
'taxonomy' => 'contract_type',
'meta_key' => 'used',
'order_by' => 'meta_value_num',
]);
foreach ($types as $key => $type) {
$types[$key]->used_count = get_term_meta($type->term_id, 'used', true);
$types[$key]->used_count_type = gettype($types[$key]->used_count);
}
这是返回的内容:
Array
(
[0] => WP_Term Object
(
...
[used_count] => 110
[used_count_type] => string
)
[1] => WP_Term Object
(
...
[used_count] => 1995
[used_count_type] => string
)
[2] => WP_Term Object
(
...
[used_count] => 810
[used_count_type] => string
)
)
我已经尝试了我能找到的请求的所有变体(使用 meta_query
而不是 meta_type
等),但没有成功,所以我怀疑问题出在元的类型,但我看不出我还能做些什么来迫使他保存 int
而不是 string
。
有什么想法吗?
我认为是 orderby
而不是 order_by
,对吧?
我有一个关于我的分类术语的元数据,每次使用它们时我都会递增,如下所示:
$count = get_term_meta($id, 'used', true);
update_term_meta($id, 'used', $count ? (intval($count) + 1) : 1);
但是,当我尝试获取按此元排序的术语时,meta_value_num
似乎没有做任何事情,而且我的术语仍然被排序,就像 used meta 是一个字符串。
$terms = get_terms([
'taxonomy' => 'contract_type',
'meta_key' => 'used',
'order_by' => 'meta_value_num',
]);
foreach ($types as $key => $type) {
$types[$key]->used_count = get_term_meta($type->term_id, 'used', true);
$types[$key]->used_count_type = gettype($types[$key]->used_count);
}
这是返回的内容:
Array
(
[0] => WP_Term Object
(
...
[used_count] => 110
[used_count_type] => string
)
[1] => WP_Term Object
(
...
[used_count] => 1995
[used_count_type] => string
)
[2] => WP_Term Object
(
...
[used_count] => 810
[used_count_type] => string
)
)
我已经尝试了我能找到的请求的所有变体(使用 meta_query
而不是 meta_type
等),但没有成功,所以我怀疑问题出在元的类型,但我看不出我还能做些什么来迫使他保存 int
而不是 string
。
有什么想法吗?
我认为是 orderby
而不是 order_by
,对吧?