Automattic\WooCommerce\Blocks\BlockTypes\ProductCollection

QueryBuilder::add_menu_order_with_title_fallback_posts_clausespublicWC 1.0

Add the posts_clauses to add menu order with title fallback sorting

Метод класса: QueryBuilder{}

Хуков нет.

Возвращает

Массив. Modified list of clauses.

Использование

$QueryBuilder = new QueryBuilder();
$QueryBuilder->add_menu_order_with_title_fallback_posts_clauses( $clauses, $query );
$clauses(массив) (обязательный)
The list of clauses for the query.
$query(WP_Query) (обязательный)
The WP_Query instance.

Код QueryBuilder::add_menu_order_with_title_fallback_posts_clauses() WC 10.9.4

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;
}