Re-order posts in query after

时间:2015-01-05 作者:rob-gordon

对于特定类别,我需要合并到另一个自定义帖子类型中。现在,我想基于自定义字段进行查询。这可能吗?

下面是我合并查询的方式。

if (in_category( \'Events\' ) && is_archive()) {
    global $wp_query;
    $args = array (
        \'post_type\' => \'custom_post_type\'
    );
    $second_query = new WP_Query( $args );
    $wp_query->posts = array_merge( $wp_query->posts, $second_query->posts );
    $wp_query->post_count = $wp_query->post_count + $second_query->post_count;
}
谢谢!

1 个回复
最合适的回答,由SO网友:Rarst 整理而成

考虑到meta缓存在页面加载中,这样做应该是合理的(未测试):

usort( $wp_query->posts, function ( $post_a, $post_b ) {
    $a = get_post_meta( $post_a->id, \'key\', true );
    $b = get_post_meta( $post_b->id, \'key\', true );
    if ( $a == $b ) {
        return 0;
    }
    return ( $a < $b ) ? - 1 : 1;
} );
根据注释,在运行之前修改查询输入可能更合理。

结束

相关推荐

Category specific order

我试图弄清楚如何按特定顺序显示类别。假设我的类别ID的顺序如下:1,3,4,2,5我想按该顺序显示类别。以下是迄今为止我拥有的代码,但它不起作用:$args = array( \'type\' => \'post\', \'child_of\' => 0, \'parent\' => \'\', \'orderby\'