Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/31.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Shopify 按键对元字段排序_Shopify_Liquid - Fatal编程技术网

Shopify 按键对元字段排序

Shopify 按键对元字段排序,shopify,liquid,Shopify,Liquid,是否可以按其键对元字段进行排序 我有如下的元域 [ 'key' => 1, 'namespace'=>'some_data', 'value'=>'some_other_stuff', 'value_type'=>'json' ] [ 'key' => 2, 'namespace'=>'some_data', 'value'=>'some_other_stuff', 'value_type'=>'json' ]

是否可以按其键对元字段进行排序

我有如下的元域

[
  'key' => 1,
  'namespace'=>'some_data',
  'value'=>'some_other_stuff',
  'value_type'=>'json'
]

[
  'key' => 2,
  'namespace'=>'some_data',
  'value'=>'some_other_stuff',
  'value_type'=>'json'
]
现在,当显示这个元字段时,我想按键对它们进行排序,键将始终是整数

这可能吗?像下面这样

{% assign data = shop.metafields.some_data | sort: 'key' %}
任何其他建议也欢迎

  • 键不能是整数,只能是字符串,至少3个字符。但您仍然可以传递100,它将转换为“100”(字符串)。因此,您可以使用
    “001”、“002”、“003”、…
    “100”、“101”、“102”、…
    序列

  • 您实际上不需要对它们进行排序,因为默认情况下Shopify会按键升序对它们进行排序。只需在模板中循环使用它们即可

    {%- for metafield in product.metafields.some_data -%}
    <p>
      Key: {{ metafield | first  }}<br> 
      Value: {{ metafield | last }}
    </p>
    {%- endfor -%}
    
    {%-用于product.metafields.some_data-%}
    
    键:{{metafield | first}}
    值:{{metafield | last}}

    {%-endfor-%}

  • 如果可能的话,我认为这种排序方式将不起作用,因为我认为Shopify不允许我们使用aphi@Bhargav更改密钥,您说过您希望按密钥对元字段进行排序,为什么需要更改密钥?是的,你是对的-Shopify不允许你更改密钥。只有删除并使用另一个图元字段重新创建图元字段,才有可能。无论如何,我的回答对你们有帮助吗?我想存储的数据可以重新排序,所以我需要更新密钥号,这似乎是不可能的。我可能想错了方向。我认为的另一个解决方案是,我应该以json格式将数据保存在单个元字段中,并在用户重新订购项目时始终更新它。但我们只能在单个元域中存储65k个字符,因此如果存在大数据,我们需要创建另一个字符,并且这个数字可能会增加,因此始终对大数据进行排序并将其放入多个元域可能不是一个好主意。将键的排序顺序存储在单独的元域中如何?您可以使用单独的元域来存储数据,而不是使用单个JSON元字段。6万美元够你的实体使用吗?我的意思是,如果您有10个元字段(具有不同的键),那么您可以创建另一个简单的元字段来存储键的排序顺序,即
    key4、key1、key3、key9、