Если логика содержит объект даты, обратите внимание, что значение будет текущим временем, когда страница была в последний раз создана из шаблона, а не когда страница представлена пользователю, если задействовано кэширование или создание статического сайта в соответствии со статьей Shopify. Он будет возвращать одинаковое число каждый раз.
Я также ищу эту функцию, которая кажется проблематичной из-за кэширования. В моем случае я хочу создать href для случайной статьи в моем блоге в зависимости от случайного числа, например, в списке между статьей 1 и статьей 30. Я не знаю, как это возможно, поскольку я не думаю, что javascript может взаимодействовать с жидкостью, чтобы служить другим звеном?
Приведенные ниже ответы правильно показывают, как генерировать случайное число в Liquid, но результаты, как вы упомянули, обрабатываются. Лучше отредактируйте этот вопрос и задайте новый вопрос, если вы хотите, например, показать случайный пост в Shopify.





Используйте код для генерации случайного числа
{% capture random %}{{ 'now' | date: "%09N" }}{% endcapture %}
вывести его с помощью
{{random}}
Кажется, не обновляет случайное число, когда я пытаюсь это сделать
@DevOverflow это связано с тем, что объект даты кэшируется и не возвращает динамическое значение. Это обычная проблема Shopify.
{% assign random_number = "now" | date: "%N" | modulo: 1000 | plus: 0 %}
Работал для меня, предоставляет случайное число от 0 до 1000.
| plus: min ничего не делает в этом случае, потому что вы не определили min
@TimoSolo забыл включить, я обновил ответ.
Вы можете использовать метку времени, чтобы получить большое число, и использовать математику, чтобы получить случайный результат. Например, чтобы получить случайное число от 0 до 100:
{% assign randomNumber = "now" | date: "%N" | modulo: 100 %}
(помните, что это будет генерировать целое число от 0 до 99 включительно.)
Или случайное число от 10 до 20:
{% assign min = 10 %}
{% assign max = 20 %}
{% assign diff = max | minus: min %}
{% assign randomNumber = "now" | date: "%N" | modulo: diff | plus: min %}
NB: файлы Liquid кэшируются, поэтому случайное число генерируется только при создании страницы и не меняется каждый раз, когда вы просматриваете страницу. Для этого вам понадобится javascript.
Важно помнить, что Liquid — это язык шаблонов, а не язык программирования. Он не предназначен для генерации действительно случайных чисел — он предназначен для кэширования серверов, доставляющих контент. Для настоящей случайности вы захотите использовать язык программирования, такой как Javascript.