2

У меня есть пользовательский тип сообщения cota, где все данные отображаются в <table> на моем сайте. Мне нужно заказать эту таблицу:WP_Query не заказан правильно

  • administradora - некоторая «категория», которую пользователь указывает. Упорядоченный ASC (a-z);
  • valor - Цена cota. У каждого cota есть цена. Упорядоченный DESC (9 - 0);

Проблема: Это уже заказан administradora, но не правильно упорядочены по valor.

Пример: заказ valor отображает сначала cota с US $ 9.000,00, а затем еще cota с US $ 1.000.000,00. Это не правильно. Должен прийти первый миллион долларов cota, а затем девять тысяч долларов cota.

Here's an image that shows better the situation

Код для заказа cota:

 $query = new WP_Query(array(
     'post_type' => 'cota', 
     'posts_per_page' => -1, 
     'tax_query' => array(
      array(
       'taxonomy' => 'tipo', 
       'field' => 'slug', 
       'terms' => $atts['tipo'], 
     ), 
    ), 
     'orderby' => 'meta_value_num', 
     'meta_query' => array(
     'relation' => 'AND', 
     'valor_clause' => array(
      'key' => 'valor', 
      'compare' => 'EXISTS' 
     ), 
     'adm_clause' => array(
      'key' => 'administradora', 
      'compare' => 'EXISTS' 
     ) 
    ), 
     'orderby' => array(
     'adm_clause' => 'ASC', 
     'valor_clause' => 'DESC' 
    ) 
    ) 
); 

EDIT 1: После некоторых исследований я обнаружил, что WordPress сохраняет все свои данные как longtext в базе данных. Но все же решить эту проблему не удастся.

Я могу предоставить дополнительную информацию, если это необходимо.

ответ

0

Try Ниже Код:

$query = new WP_Query(array(
    'post_type' => 'cota', 
    'posts_per_page' => -1, 
    'tax_query' => array(
     array(
      'taxonomy' => 'tipo', 
      'field' => 'id', 
      'terms' => $atts['tipo'], 
    ), 
), 
    'orderby' => 'meta_value_num', 
    'meta_query' => array(
    'relation' => 'AND', 
    'valor_clause' => array(
     'key' => 'valor', 
     'compare' => 'EXISTS' 
    ), 
    'adm_clause' => array(
     'key' => 'administradora', 
     'compare' => 'EXISTS' 
    ) 
), 
    'orderby' => array(
    'adm_clause' => 'ASC', 
    'valor_clause' => 'DESC' 
) 
) 
); 
+0

Не работает. Если я изменяю 'поле' с' slug' на 'id', данные не отображаются. –

0

решаемые

Следующий код должен работать:

 $query = new WP_Query(array(
     'post_type' => 'cota', 
     'posts_per_page' => -1, 
     'tax_query' => array(
      array(
       'taxonomy' => 'tipo', 
       'field' => 'slug', 
       'terms' => $atts['tipo'], 
     ), 
    ), 
     'meta_query' => array(
     'relation' => 'AND', 
     'credito_clause' => array(
      'key' => "valor", 
      'orderby' => 'meta_value_num', 
      'type' => 'DECIMAL', 
      'compare' => 'EXISTS' 
     ), 
     'adm_clause' => array(
      'key' => 'administradora', 
      'compare' => 'EXISTS' 
     ) 
    ), 
     'orderby' => array(
     'adm_clause' => 'ASC', 
     'credito_clause' => 'DESC' 
    ) 
    ) 
); 
Смежные вопросы