按多个元键排序-自定义POST类型

时间:2013-09-03 作者:MikeyOh

我在网上搜索过,试图这样做,但没有一个示例与我当前的数据布局方式非常相似,我想知道是否有人能告诉我如何根据我的设置进行调整?

这就是它目前吸引我发帖的方式:

\'meta_key\' => \'matchdate\',
    \'orderby\' => \'meta_value\',
    \'order\' => \'DESC\',
    \'meta_query\' => array(
            array (
            \'key\' => \'matchdate\',
            \'meta_value\' => mktime(0,0,0,date("n"),date("j"),date(\'Y\')),
            \'type\' => \'NUMERIC\',
            \'compare\' => \'>=\',  
            )
    ),
等等。这将通过“matchdate”的自定义post meta对足球比赛进行排序,该meta将比赛日期存储为unix时间戳,并在显示时进行转换。

然而,对于同一天的比赛,则按字母顺序排序,这不是我想要的。还有另一个(简单的数字)字段,将开始时间存储为“开始时间”,如“15:00”、“12:45”、“17:00”等。我想做的是首先按匹配日期对匹配进行排序,最新的第一个(与当前一样),然后按开始时间,也按最新的第一个排序(因此,对于相同日期的匹配,17:30将出现在15:00以上)。

任何帮助都将不胜感激!现有代码的问题是,我从不同的地方复制了一些代码,所以我对它的工作原理没有完全的了解。

谢谢:)

迈克

1 个回复
SO网友:cybmeta

为什么不将日期和开始时间存储在同一个datetime字段中,并按此元值排序?

请注意,您可能需要更改以下内容:

$args = array(
        .......
        \'orderby\' => \'meta_value\',
         .........
    );
收件人:

$args = array(
        .......
        \'orderby\' => \'meta_value_num\',
         .........
    );

结束

相关推荐