【发布时间】:2022-10-24 06:54:30
【问题描述】:
我正在尝试执行 wp_query 并按以下规则对结果进行排序:
- 普通帖子
- 然后出现 'reseau = 48' => 是 tontouta
- 然后通过出现'reseau = 171' => 是deroulant
预期的结果是每个帖子都没有 tontouta 也没有 deroulant 显示,然后是 deroulant,然后是 tontouta。
问题是 wp_query 生成的请求以相同的别名加入同一个表的两次:
OR
( mt1.meta_key = 'reseau_cf' AND mt1.meta_value = '48' )
OR
( mt1.meta_key = 'reseau_cf' AND mt1.meta_value = '171' )
我希望第二次加入(但也许这不是正确的方法):
( mt2.meta_key = 'reseau_cf' AND mt2.meta_value = '171' )
这是实际的查询(为提问目的而简化):
'post_type' => 'panneaux',
'post_status' => 'publish',
'posts_per_page' => -1,
'meta_query' => [
'relation' => 'AND',
[
'relation' => 'OR',
[
'key' => 'quartier',
'compare' => 'exists',
],
'is_tontouta' => [
'key' => 'reseau',
'compare' => '=',
'value' => 48,
],
'is_deroulant' => [
'key' => 'reseau',
'compare' => '=',
'value' => 171,
],
],
[
'key' => 'actif',
'value' => 1,
],
],
'orderby' => [
'is_deroulant' => 'DSC',
'is_tontouta' => 'DSC',
],
在这种情况下,我不能使用自定义查询,因为我们正在使用 WP grid Builder 插件,我们需要使用 WP_Query 来使用它。
【问题讨论】:
标签: wordpress