在WordPress网站开发过程中,有时候我们需要对文章/自定义文章类别(这里统称为文章)进行一些自定义排序,以下是我常用的自定义排序输出的方法:
$myposts = get_posts( array(
'numberposts' => 50,
'post_type' => 'hotels', //自定义的文章类型
'orderby' => 'meta_value', //按照自定义字段排序
'meta_key' => 'hotel_country',//排序的自定义字段名为hotel_country
'order' => 'ASC'
) );
foreach( $myposts as $post ) {
...
}
第一个问题:如何进行多个字段的排序?
比如我想在给自定义字段hotel_country排序的同时,增加一个文章标题的排序。
这个简单,只要把orderby变量改成:
'orderby' => 'meta_value title',
这样文章标题就变成第二排序了。在orderby里用空格分隔多个排序字段即可。
第二个问题:如何使多个字段按不同的顺序排序?
这个是WordPress4.0开始新增的功能。比如我要让hotel_country进行正序排序,title进行逆序排序,代码如下:
$myposts = get_posts( array(
'numberposts'=>500,
'post_type' => 'hotels',
'orderby' => array( 'meta_value' => 'ASC', 'title' => 'DESC' ),
'meta_key' => 'hotel_country'
) );
foreach( $myposts as $post ) {
...
}
只要给orderby按如上的结构赋值即可,真的很方便!
© 版权声明
暂无评论内容