编程语言
首页 > 编程语言> > php – WP_Query orderby meta_value_num无效

php – WP_Query orderby meta_value_num无效

作者:互联网

我试图按价格显示服务列表.我已经设置了自定义帖子类型和自定义字段等.但是,当我在页面上运行查询时,最昂贵的服务(£100)首先显示而不是最后一次…我写的查询如下:

$services = new WP_Query(array(
'post_type' => 'service',
'tax_query' => array(
    array(
        'taxonomy' => 'service_type',
        'field' => 'name',
        'terms' => $post->post_name,
    ),
),
'meta_key'  => 'price',
'post_status' => 'publish',
'posts_per_page' => -1,
'orderby' => 'meta_value_num',
'order' => 'ASC', ));

该页面的链接在这里dev.poshwashlondon.co.uk/valeting.

提前致谢!

解决方法:

您提供的链接清楚地显示了字符串排序(100,15,20,25等).您的问题似乎是查询使用的元值不是数字,而是字符串.

你可以试试这个:

$services = new WP_Query(array(
'post_type' => 'service',
'tax_query' => array(
    array(
        'taxonomy' => 'service_type',
        'field' => 'name',
        'terms' => $post->post_name,
    ),
),
'meta_key'  => 'price',
'meta_type' => 'NUMERIC',
'post_status' => 'publish',
'posts_per_page' => -1,
'orderby' => 'meta_value_num',
'order' => 'ASC', ));

您可以在这里查看可能的“orderby”:
https://codex.wordpress.org/Class_Reference/WP_Query#Order_.26_Orderby_Parameters

标签:custom-fields,php,wordpress,post-meta
来源: https://codeday.me/bug/20190824/1702950.html