К сожалению collection.url
не возвращает строку запроса, в вашем примере, это будет выход /collections/all
Я не думаю, что есть способ в жидкости, чтобы получить текущую строку запроса URL. Вы можете только установить тип сортировки по умолчанию с collection.default_sort_by : 'price'
Или переопределить все сортировки с {% assign products = collection.products | sort: 'price' %}
Вы можете переопределить параметр строки sort_by
запроса с помощью JQuery для замены best-selling
на price
:
<script type="text/javascript">
$.urlParam = function(name){
var results = new RegExp('[\?&]' + name + '=([^&#]*)').exec(window.location.href);
return results[1] || 0;
}
var sort_by = $.urlParam('sort_by');
if(sort_by == "best-selling") {
var url = window.location.href;
url = url.replace("best-selling", "price"); // override to sort by price
window.location.href = url; // redirect to url
}
<script>
Используя этот код с Например, он автоматически перенаправляет страницу www.store.myshopify.com/collections/all?sort_by=best-selling
на www.store.myshopify.com/collections/all?sort_by=price
Но имейте в виду, что ваши конкуренты могут отключить этот JS-код и все еще работать вырезать бестселлеры.