2015-05-03 1 views
1

Я пытаюсь написать пользовательский запрос Wordpress (WP_Query), который фильтрует сообщения по лимиту оценки. Эта оценка представляет собой число от 0 до 10, и она может быть плавающей, а также (6.8, например), я попробовал этот код, но он не работает :(Wordpress meta query не работает с десятичным типом

<?php 
$ratings = array(4, 7); // this is an example , ratings are dynamic 

$args = array(
    'post_type' => 'product', 
    'showposts' => -1, 
    'meta_query' => array(
     array(
      'key'  => 'aps-product-rating-total', // floating number 
      'value' => $ratings, 
      'type' => 'DECIMAL', 
      'compare' => 'BETWEEN' 
     ) 
    ); 
); 

$filter_result = new WP_Query($args); 
?> 
+0

anyeeeee !!!? – Amin

+0

Результат, напечатанный из $ filter_result-> request; будет полезен. Вы получите полный код SQL, так что это легко er для отладки. Также попробуйте запустить запрос в phpMyAdmin или другом инструменте MySQL. –

ответ

0

Ответ прост - удалить " type ", и поиск будет уважать ваши десятичные числа. Я узнал об этом, выведя запрос, как это было предложено m.cichacz. Вы можете видеть, что при полях NUMERIC или DECIMAL существует приведение типов при указании, но по какой-либо причине это является причиной запрос, чтобы игнорировать что-либо после десятичного знака. Удалите typecasting и он работает.