#shopify #liquid
#Shopify #жидкость
Вопрос:
Я пытаюсь скрыть доступ от конкурентов, просматривающих бестселлеры, в частности, используя URL-адрес, подобный этому:
www.store.myshopify.com/collections/all?sort_by=best-selling
Я пробовал {% if collection.url contains 'sort_by=best-selling' %}
, но это не работает. Есть ли какой-либо способ настроить таргетинг на URL с прикрепленной строкой запроса?
Если нет, какие-либо предложения?
Спасибо!
Ответ №1:
К сожалению collection.url
, не возвращает строку запроса, в вашем примере она выводила бы /collections/all
Я не думаю, что в Liquid есть способ получить текущую строку запроса 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('[?amp;]' name '=([^amp;#]*)').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-код и все равно получить доступ к самым продаваемым товарам.