【问题标题】:How to save ACF data to a unique post and user combination如何将 ACF 数据保存到唯一的帖子和用户组合
【发布时间】:2017-11-25 12:51:39
【问题描述】:

在 Wordpress 网站上,我有可以提交内容的作者和可以对其进行评估和评论的编辑。提交的内容使用它自己的帖子类型,并且评估完成后显示带有文本和星级字段的 ACF 5 表单。

我的问题是一个概念问题,即将评估数据保存到:

  1. 我无法将其保存到帖子中,因为必须有不同编辑的评价。

  2. 我无法将其保存给用户(无论是作者还是编辑),因为作者可以提交各种内容,而编辑可以评估不同的内容。

因此,我既不需要将评估保存到提交的内容(post_1、post_2、...),也不需要保存到评估者(user_1、user_2、...),而是保存到唯一的帖子和用户组合(evaluation_1_1、evaluation_1_2、. ..):

这样做的常用方法是什么?我是否必须创建一个新的内容类型“评估”,其中包含对提交内容和评估编辑器的引用,并对每个评估进行查询以了解内容是否已被评估?

或者有更简单的方法吗?我想到了像自定义 $post_id 之类的东西:

'post_id' => "post_".$post_id."_".$uid,

【问题讨论】:

    标签: php wordpress advanced-custom-fields


    【解决方案1】:

    感谢ACF forum 的帮助,我可以解决这个问题。诀窍是将评估数据保存为数组。

    我使用从 single.php 模板加载的标准 ACF 表单组并添加了以下钩子来实现这一点:

    1. 挂钩 acf/update_value 并检索值:

      $value = get_post_meta($post_id, $field['name']);

    2. 在同一个钩子中将 $value 覆盖为数组:

      $value[get_current_user_id()] = $value;

    3. 挂钩 acf/load_field 并检索值:

      $value = get_post_meta(get_the_ID(), $field['name']);

    4. 在同一个钩子中从数组中提取值:

      $field['value'] = $value[0][get_current_user_id()];

    【讨论】:

      猜你喜欢
      • 2015-07-16
      • 2018-12-10
      • 2020-06-08
      • 2020-06-11
      • 2020-08-08
      • 2021-09-05
      • 1970-01-01
      • 1970-01-01
      • 2019-05-18
      相关资源
      最近更新 更多