โดยปกติแล้ว meta_value จะเก็บเป็น string ทำให้ตอนจัดเรียง (orderby) จะเป็นเงื่อนไขการจัดเรียงแบบ string สมมติ เรามี meta_value เช่น 1, 90, 10, 30, 2, 3 ซึ่งเวลาจัดเรียงแล้วจะได้ 1, 10, 2, 3, 30, 90 ไม่ตรงตามที่เราต้องการ แต่ที่ต้องการคือเรียง 1, 2, 3, 10, 30, 90
เราจะต้องทำให้ WP_Query รู้ว่าจะต้องจัดเรียงแบบตัวเลข (NUMBERIC) โดยเพิ่ม ‘meta_type’ => ‘NUMERIC’ เข้าไปในเงื่อนไขตอน Query
ตัวอย่าง WP_Query
<?php
$services = new WP_Query(array(
'post_type' => 'service',
'tax_query' => array(
array(
'taxonomy' => 'service_type',
'field' => 'name',
'terms' => $post->post_name,
),
),
'meta_key' => 'price',
'posts_per_page' => -1,
'orderby' => 'meta_value',
'meta_type' => 'NUMERIC', //เพิ่มบรรทัดนี้
'order' => 'ASC', ));