首页 > 解决方案 > 如何在同一列中查询多个 orderby?

问题描述

我有一个帖子列表,其中一列我试图按字母顺序设置。问题是这些帖子在同一列中显示了两种不同的值类型之一。

我在下面尝试的代码让我走到了一半,它确实查询了顶部带有这些值之一但仍然不是按字母顺序排列的帖子。

$posts_per_page = 10;
$paged = ( get_query_var('paged') ) ? get_query_var('paged') : 1;
$args = array(
    'post_type' => 'offerter',
    'post_status' => 'publish',
    'posts_per_page' => $posts_per_page,
    'paged' => $paged,
    'meta_key' => 'business_id',
    'meta_value' => $business_id,
    'meta_query' => array(
        'relation' => 'OR',
        'customer_name' => array(
            'key' => 'customer_name',
            'compare' => 'LIKE',
        ),
        'quick_customer_name' => array(
            'key' => 'quick_customer_name',
            'compare' => 'LIKE',
        ),
    ),
    'orderby' => array(
        'customer_name' => 'desc',
        'quick_customer_name' => 'desc',
    )

我试图比较 EXISTS 和 LIKE,这让我得到了相同的结果。

标签: phpwordpresscustom-post-type

解决方案


您可以在查询的最后使用,例如:

$collection = new Collection($put_your_array_here);

// Paginate
$perPage = 10; // Item per page
$currentPage = Input::get('page') - 1; // url.com/test?page=2
$pagedData = $collection->slice($currentPage * $perPage, $perPage)->all();
$collection= Paginator::make($pagedData, count($collection), $perPage)->orderby('customer_name' => 'desc')->orderby('customer_name' => 'desc');

推荐阅读