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

时间:2017-06-22 09:55:12

标签: php wordpress advanced-custom-fields

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

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

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

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

  3. 所以我需要将评估既不保存到提交的内容(post_1,post_2,...),也不保存给评估者(user_1,user_2,...),而是保存到一个独特的帖子和用户组合(evaluation_1_1,evaluation_1_2 ,. ..):

    enter image description here

    通常的方法是如何做到的?我是否必须创建新的内容类型"评估"参考提交的内容和评估编辑,并对每个评估进行查询,以了解内容是否已经过评估?

    还是有更简单的方法吗?我认为像自定义 $ post_id

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

1 个答案:

答案 0 :(得分: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()];