複数のorderby meta_queryが欲しいです。
orderby(‘_property_price’ => ‘DESC’,’_property_featured’ => ‘DESC’)
これは私がやっていることです
$query->set('meta_key',array('_property_price','_property_featured'));
$query->set('orderby',array('meta_value'=>'DESC'));
SQLでは、次のようになります。
ORDER BY _property_price, _property_featured DESC
これに対する解決策は?
少し遅れるかも…
add_action( 'pre_get_posts', function($query) {
if ( !is_admin() && $query->is_main_query() && is_post_type_archive( '[your_post_type]' ) ) {
$query->set('meta_query', array(
'_property_price' => array(
'key' => '_property_price',
),
'_property_featured' => array(
'key' => '_property_featured',
)
));
$query->set('orderby',array(
'_property_price' => 'DESC',
'_property_featured' => 'DESC'
));
}
return $query;
} );