【问题标题】:Is there a risk to save arrays in text field with ACF?使用 ACF 在文本字段中保存数组是否存在风险?
【发布时间】:2020-11-09 11:11:48
【问题描述】:

我在 WordPress 上的一个相当大的项目中使用 ACF(高级自定义字段)。 目前我在文本字段中保存了一些数组。我知道这不是最清楚的方法。 将这些数组转换为 JSON 是解决方案吗? 它实际上什么都不做,但是我对数据库一无所知,我担心我会引起问题。

这是这个数组的一个例子。每个用户都可以从他们的前端配置文件中填写一个添加新体验的表单。

Array(
[0] = Array(
      ['name'] = 'First Experience',
      ['description'] = 'fjdjfdkhfkbdsq',
),
[1] = Array(
      ['name'] = 'Second Experience',
      ['description'] = 'jbfhjdsjbfsduf',
),
[2] = Array(
      ['name'] = 'Third Experience',
      ['description'] = 'hbfhdishuqfdsfq',
))

这是字段配置:

{
        "key": "field_5ebfc23830fd7",
        "label": "Experiences",
        "name": "player_experiences",
        "type": "text",
        "instructions": "",
        "required": 0,
        "conditional_logic": 0,
        "wrapper": {
            "width": "",
            "class": "",
            "id": ""
        },
        "default_value": "",
        "placeholder": "",
        "prepend": "",
        "append": "",
        "maxlength": ""
    }

由于我无法访问我无法真正检查的数据库,所以您认为它可能有任何问题吗?

谢谢大家,可能是愚蠢的;)

【问题讨论】:

  • 你需要看看你想如何使用数据。如果您需要能够按这些数组中的值选择记录,那么它可能会变得低效。阅读数据库设计以及 wordpress 元记录,例如:usermeta、postmeta 等。您使用 wordpress 的次数越多,wordpress 和其他工具就能处理您的数据。
  • 我有不同的数组。为特定用户存储特定帖子 ID 的一种(用户可以创建帖子名称“团队”并将其他用户添加到其中,这些用户存储在数组中)。 Antoher 数组(所以另一个领域)是向您的用户配置文件添加专业体验的能力,目前有一个表单可以创建一个数组,该数组本身添加到一个重新组合所有体验的大数组中。
  • 实际上,所有这些功能都有效,但由于会有很多用户,我担心数据库 ^^
  • 对于专业经验,如果您希望能够通过他们的专业经验查询用户,例如:Select * from wp_usermeta WHERE professional='astronaut' 那么您可以为每个用户添加一个 usermeta 记录meta_key=职业,meta_value=宇航员。每个用户和元键可以有多个。
  • 另一方面,这取决于您的主要报告路线。如果主要针对特定​​的帖子/团队,您希望用户与该帖子相关联,并且一次只需要该帖子,那么对于该帖子,您可以为具有值 userid 的关键“团队成员”存储多个 postmeta 记录。或者在带有元键团队和值 post_id 的 usermeta 上,例如,如果一个用户可以是一个多个团队,并且您的查询更多是由用户进行的。

标签: php wordpress advanced-custom-fields


【解决方案1】:

默认情况下,如果元值是数组,wordpress 会使用 php 的序列化保存元值。所以它们不是 JSON。我认为即使您使用 acf 它仍然会以相同的方式保存。这不应该对写入或读取数据造成任何问题。 但是 - 这是一个很大的“但是” - 我完全同意 Anmari,他评论说这真的取决于你想如何使用你的数据。根据您的功能,可能会有更简单的数据存储方式。

【讨论】:

  • 好的,看到了,我已经在 anmari 评论下描述了我的功能。谢谢!
猜你喜欢
  • 1970-01-01
  • 2015-08-18
  • 2012-02-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多