首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Wordpress中的一次和二次排序

Wordpress中的一次和二次排序
EN

Stack Overflow用户
提问于 2012-11-16 00:22:06
回答 1查看 666关注 0票数 2

我正在创建一个目录相册的Wordpress主题,我已经创建了自定义post类型,创建了自定义字段,并让它们成功地进入。我有几个自定义字段,包括:“艺术家”、“相册”、“大小”、“标签”等。目前,我的文章按照艺术家的名称按字母顺序排序,并使用这个数组:

$args=array( “post_type‘=>’专辑” ‘'order’=> 'ASC', “meta_key‘=>’自定义元艺术家‘, ‘'orderby’=> 'meta_value', 'posts_per_page‘=> -1, );

但我也希望专辑,‘定制_元_专辑’,按字母排序,如果它是同一个艺术家。当前,如果用户由同一位艺术家输入10张专辑,则文章将按照艺术家的名称正确地按字母顺序排列,但是专辑没有顺序。

有没有办法在Wordpress中进行某种二级排序或初级排序和二次排序?我不知道这是否是一个if语句,上面写着“如果艺术家的价值是相等的,那么也可以对上升的专辑进行排序”,或者其他类似的东西。我想需要一些方法来告诉Wordpress它应该先排序,然后继续到第二个级别。

EN

回答 1

Stack Overflow用户

发布于 2012-11-16 01:53:54

你可以试试这个,希望它能用

代码语言:javascript
复制
// keep this function in your functions.php
function myCustomOrderby($orderby) {
    return str_replace('menu_order', 'mt1.meta_value, mt2.meta_value', $orderby);
}

这是你的args数组

代码语言:javascript
复制
$args=array(
    'post_type' => 'albums',
    'orderby' => 'title',
    'order' => 'ASC',
    'posts_per_page' => -1,
    'meta_query' => array(
         array(
            'key' => 'custom_meta_artist',
            'value' => '',
            'compare' => 'LIKE'
        ),
        array(
            'key' => 'custom_meta_album',
            'value' => '',
            'compare' => 'LIKE'
        )
    )
);
add_filter('posts_orderby','myCustomOrderby'); // Add filter before you call the WP_Query
$albums = new WP_Query($args);
remove_filter('posts_orderby','myCustomOrderby'); // Remove filter after you call the WP_Query
// Start your loop
while ( $albums->have_posts() ) : $albums->the_post();
    //...
endwhile;
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13408580

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档