执行后this question, 我转到下一步,我想按另一个自定义字段对查询结果进行排序。
我想按包含日期的自定义字段对结果进行排序,并希望获得从最低日期到最高日期的顺序
问题是我没有得到我点的东西。我尝试了几种方法,但都没有成功,我搜索了几个网站,什么都没有。我很难再问你一次,但我解决不了这个问题。
有人能帮我吗?:\'(
我留下我的代码以查看您应该将orderby嵌入到哪里:
$group_1 = get_posts(
array(
\'posts_per_page\' => 30,
\'fields\' => \'ids\',
\'meta_query\' => array (
array (
\'key\' => \'field1\',
\'value\' => \'data1,
),
array (
\'key\' => \'field2\',
\'value\' => \'data2\',
),
),
)
);
$group_2 = get_posts(
array(
\'posts_per_page\' => 30,
\'fields\' => \'ids\',
\'meta_query\' => array (
array (
\'key\' => \'field1\',
\'value\' => \'data2\',
),
array (
\'key\' => \'field2\',
\'value\' => \'data1\',
),
),
)
);
$the_query = new WP_Query(
array(
\'post__in\' => array_merge( $group_1, $group_2)
)
);
谢谢!
最合适的回答,由SO网友:s_ha_dum 整理而成
你需要\'order_by\' => \'post__in\'
在上一次查询中"Preserve post ID order given in the post__in array (available with Version 3.5).".
我不知道您传递的订单是否是array_merge( $group_1, $group_2)
. 换句话说,您需要为第二个查询提供一组有序的ID
而你似乎没有那么做。
我也不知道meta_key
您已经查询的是您想要的orderby
. 可能类似的方法会奏效:
$the_query = new WP_Query(
array(
\'post__in\' => array_merge( $group_1, $group_2),
\'meta_key\' => \'your_date_field_key\',
\'orderby\' => \'meta_value\',
)
);
这完全没有经过测试。可能是马车。买主注意事项。不退款。