如何将 ACF 数据保存到唯一的 post 和用户组合

How to save ACF data to a unique post and user combination

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

我的问题是概念性问题,即将评估数据保存到哪里:

  1. 无法保存到post,因为要有不同编辑的评价

  2. 我不能保存给用户(既不是作者也不是编辑)因为作者可以提交不同的内容,编辑可以评价不同的内容。

所以我需要将评估保存到提交的内容(post_1、post_2、...)或评估者(user_1、user_2、 ...) 但对于唯一的 post 和用户组合 (evaluation_1_1, evaluation_1_2, ...):

常见的做法是怎样的?我是否必须创建一个新的内容类型 "evaluation" 以引用提交的内容和评估编辑器并查询每个评估以了解内容是否已被评估?

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

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

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

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

  1. 连接到 acf/update_value 并检索值:

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

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

    $值[get_current_user_id()] = $值;

  3. 连接到 acf/load_field 并检索值:

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

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

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