在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按如上的结构赋值即可,真的很方便!

© 版权声明
评论 抢沙发

请登录后发表评论

    暂无评论内容