在wordpress中按多个自定义字段值排序

时间:2016-04-18 15:22:45

标签: php wordpress

我有一个名为“sale_status”的自定义字段,其值(“For Sale”,“Sold”,“Let”)显示在admin的单选按钮中。现在每个人都可以分配到一个属性。

目前,查询按照发布日期提取属性订单,但我希望它是通过sale_status然后是date。

我的代码如下 -

 $args = array(
      'post_type'       => 'zoo-property',
      'posts_per_page'  => $query__per_page, 
      'post_status'     => 'publish',
      'paged'           => $query__page,            
      'meta_key'        => 'sale_status',
      'orderby'         => 'meta_value_num',
      'order'           => 'DESC',

      'meta_query' => array(
        'relation' => 'AND',
        $query__types,
        $query__locations,
        $query__statuses,
        $query__investments,
        $query__price
      )

    );


    $properties_wp_query = new WP_Query($args);
    echo "Last SQL-Query: {$properties_wp_query->request}";

但它没有以正确的顺序显示。

非常感谢任何帮助。提前谢谢。

1 个答案:

答案 0 :(得分:2)

如果要在同一查询中包含多个排序条件,orderby值必须是数组。有关详细信息,请参阅WP_Query documentation。尝试这样的事情:

$args = array(
    'post_type'       => 'zoo-property',
    'posts_per_page'  => $query__per_page, 
    'post_status'     => 'publish',
    'paged'           => $query__page,            
    'meta_key'        => 'sale_status',
    'orderby'         => array( 'meta_value_num' => 'DESC', 'post_date' => 'DESC' ),
    'meta_query' => array(
        'relation' => 'AND',
        $query__types,
        $query__locations,
        $query__statuses,
        $query__investments,
        $query__price
    )
);