Wordpress - 按meta_value_num排序无效

时间:2017-11-29 21:26:08

标签: php wordpress sql-order-by

我的分类学术语中有一个元数据,我每次使用时都会增加,例如:

$count = get_term_meta($id, 'used', true);
update_term_meta($id, 'used', $count ? (intval($count) + 1) : 1);

但是,当我尝试按此元素排序时,meta_value_num似乎没有做任何事情,我的条款仍然有序,就像使用元素是字符串。

$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

有什么想法吗?

1 个答案:

答案 0 :(得分:3)

我认为它是orderby而不是order_by,不是吗?