Automattic\WooCommerce\Blocks\BlockTypes\ProductCollection
QueryBuilder::add_menu_order_with_title_fallback_posts_clauses
Add the posts_clauses to add menu order with title fallback sorting
Method of the class: QueryBuilder{}
No Hooks.
Returns
Array. Modified list of clauses.
Usage
$QueryBuilder = new QueryBuilder(); $QueryBuilder->add_menu_order_with_title_fallback_posts_clauses( $clauses, $query );
- $clauses(array) (required)
- The list of clauses for the query.
- $query(WP_Query) (required)
- The WP_Query instance.
QueryBuilder::add_menu_order_with_title_fallback_posts_clauses() QueryBuilder::add menu order with title fallback posts clauses code WC 10.7.0
public function add_menu_order_with_title_fallback_posts_clauses( $clauses, $query ) {
$query_vars = $query->query_vars;
$is_product_collection_block = $query_vars['isProductCollection'] ?? false;
if ( ! $is_product_collection_block ) {
return $clauses;
}
$orderby = $query_vars['orderby'] ?? null;
if ( 'menu_order' !== $orderby ) {
return $clauses;
}
$is_ascending_order = ! isset( $query_vars['order'] ) || 'asc' === strtolower( $query_vars['order'] );
$clauses['orderby'] = $is_ascending_order ?
'menu_order ASC, post_title ASC' :
'menu_order DESC, post_title DESC';
return $clauses;
}