WordPress订单通过2个自定义字段一次发布

问题描述 投票:0回答:1

我想在同一通话中按2个自定义字段对帖子排序。这怎么可能?

此下一个代码成功排序,但只能通过1个自定义字段:

add_action('pre_get_posts', function ($q) {
    if (
        !is_admin() // Target only front end queries
        && $q->is_main_query() // Target the main query only
        && ($q->is_search() || $q->is_post_type_archive('data-base'))
    ) {
        $q->set('meta_key', 'custom_field_1');
        $q->set('order',    'DESC');
        $q->set('orderby',  'meta_value');
    }
});

这可能有助于:a more powerful order by in WordPress 4.0

php mysql sql wordpress posts
1个回答
0
投票

尝试这个:

配置元查询:

$meta_query = array(
    'relation' => 'AND',
    'clause1' => array(
        'key'     => 'first key of your meta',
        'compare' => 'EXISTS',
    ),
    'clause2' => array(
        'key'     => 'second key of your meta',
        'compare' => 'EXISTS',
    ));

$q->set('meta_query', $meta_query);


$q->set('orderby',array( 
   'clause1'  => 'DESC', 
   'clause2'  => 'ASC' 
      )  
);

如果要沿相同方向排序:

$q->set('orderby' =>'clause1 clause2',
        'order'   =>'ASC'
);
© www.soinside.com 2019 - 2024. All rights reserved.