我有一个自定义帖子类型cota
,其中所有数据都显示在我网站的<table>
中。我需要通过以下方式订购此表:
administradora
- 用户指定的某种“类别”。订购ASC(a-z); valor
- cota
的价格。每个cota
都有一个价格。订购DESC(9 - 0); 问题:它已由administradora
订购,但未由valor
正确排序。
示例:valor
的订单首先显示cota
美元9.000,00美元,然后显示另一个cota
美元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'
)
)
);
编辑1 :经过一番研究,我发现wordpress将其所有数据保存为数据库中的longtext
。但仍然无法解决问题。
如果需要,我可以提供更多信息。
答案 0 :(得分:0)
尝试以下代码:
$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'
)
)
);
答案 1 :(得分: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'
)
)
);