使用Meta_Key创建有序查询

时间:2016-05-29 作者:Joe

我遇到了一个巨大的障碍,我已经被困了好几天了,希望有人能帮助我。

问题是:

我有一个自定义字段,名为order_value 使用值road, airbus.

我正在使用此自定义字段订购一组帖子。因此,所有属于每套road, airbus 组合在一起并列出。这项工作正在成功完成。

现在看起来$the_query 总是按照meta_value. 例如,“航空、公共汽车、公路”。A->Z。

我希望在查询本身中更改顺序,以便它可以按指定的任何顺序对帖子进行排序,即“道路、航空、公共汽车”等。

我主要是按照我可以在查询中指定的特定顺序对一组帖子进行分组。

这是我的问题和我要做的

$args = array(
    \'post_type\' => \'post\',
    \'posts_per_page\'    => -1,
    //\'cat\'       => $term->term_id,
    \'meta_key\'  => \'order_value\',
    \'orderby\'    => \'meta_value\',
    \'meta_value\' => array(\'road\',\'air\',\'bus\'),
    \'order\'      => \'ASC\'
);

$the_query = new WP_Query( $args );
我尽量不使用MySQL查询,因为我在这方面也不是很擅长。

1 个回复
SO网友:Rarst

我认为排序可以是字母或数字。没有API方法可以为查询提供更详细的排序规则,也无法与SQL混为一谈,因为这可能不切实际。

由于您正在检索完整的帖子集(不必担心分页),最简单的方法是:

不对查询请求排序$the_query->posts 在启动输出循环之前,使用PHP代码设置结果

相关推荐

GET_POSTS查询大约需要40秒来执行

我在get\\u帖子中有一个元查询,它需要花很长时间才能完成。它工作得很好,但只是时间太长了。我有一个名为event. 在每个event 发布后,有自定义元数据:post\\U sort\\U日期(事件日期YmdHis 格式,用于排序)我需要做的是获取下一个事件,该事件相对于$year 和$month 变量。所以如果$year = 2021 和$month = 10 (2021 10月)然后应该在2021 11月或之后找到第一个事件。我下面的查询很好,但很慢。执行大约需要40秒,我不知道为什么。$next