私は以前、クエリの結果を2つの基準で並べ替えることができました( "最初にstatusでソート結果= unsold ASC、次に日付でソートDESC)。
add_action( 'pre_get_posts', 'my_get_posts' );
function my_get_posts( $query )
{
if (is_admin()){
return;
}
if (is_post_type_archive('objet')){
// Stock: sort by unsold first, then by date
$query->set('meta_key', 'wpcf-object-sold-status' );
$query->set('orderby', 'meta_value date');
$query->set('order', 'ASC DESC' );
}
return $query;
}
しかし今では、結果の順序は変わりません。なぜそれが機能しなくなったのかわかりません。たぶんWordpress 3から4へのアップデート?
ミロが言ったように:
$query->set('meta_key', 'wpcf-object-sold-status' );
$query->set('orderby', array('meta_value' => 'ASC', 'date' => 'DESC'));
// $query->set('order', 'ASC DESC' ); // not needed
関連リンク: https://make.wordpress.org/core/2014/08/29/a-more-powerful-order-by-in-wordpress-4-0/ /