个性化阅读
专注于IT技术分析

更新特定acf_form()时更新帖子的分类法

点击下载

我目前正在为学校建立家长招生门户。当用户(父母)注册时, 学生将作为自定义帖子类型(学生)创建-父母是每个学生帖子的作者。这些学生职位具有一种自定义的分类法, 称为状态, 用于确定是否已提交并审查了学生的录取表格。我正在使用acf_form()创建显示在前端并由父级用户填写的准入表单。每个学生目前有6个ACF字段组(6个表格)。我正在获取这些字段组的键, 并使用foreach循环遍历它们, 以显示每个字段组的6个单独的acf_form()表单。

创建学生信息后, 其状态会自动设置为”进行中”, 即家长正在填写表格。

我想要的是

当用户更新6的一个特定表单/字段组时, 我希望将学生的状态分类从”进行中”更改为”已提交”。为了进一步解释, 此表单是用户/父母需要完成的最终表单, 因此一旦他们按下acf_form()更新按钮, 就应该更新分类法。

所以本质上…

我正在寻找一种方法来保存acf_form(), 检查是否已更新的表单是特定表单(通过字段组键?), 然后更新状态分类法发布表单已提交的位置。

我尝试过的

我已经尝试过使用ACF的pre_save_post过滤器和save_post操作, 但是由于这两个函数只给了我$ post_id, 我无法找出一种方法来检查保存了哪个字段组。我只是从ACF文档中添加了代码, 然后尝试print_r()/从函数中回显数据, 以查看是否有任何方法可以检查字段组键, 但是更新页面时页面上没有任何内容acf_form()。

所以…

有谁知道我如何才能正确地执行该操作并获取正确的数据, 以使我能够进行所需的检查?


#1


我找到了一种方法来做自己想要的东西, 但是我觉得这不是一个很好的方法, 因此我仍然愿意接受建议。

编码:

function my_acf_save_post( $post_id ) {

    $keys_of_specific_field_group = array(
        'field_5ce2970bc9fbd' => '', 'field_5ce29741c9fbe' => '', 'field_5ce297c7c9fc1' => '', 'field_5ce297ddc9fc2' => '', 'field_5ce297fac9fc3' => '', 'field_5ce2980ec9fc4' => '', 'field_5ce29874c9fc5' => '', '_validate_email' => ''
    );

    if ( $_POST['acf'] === $keys_of_specific_field_group ) {

        wp_set_post_terms($post_id, array(21), 'status');

    }

}

add_action('acf/save_post', 'my_acf_save_post', 1);

基本上, 我只是检查从$ _POST [‘acf’]返回的字段键是否与我要检查的特定格式的字段的字段键匹配, 并且如果它们确实匹配, 则我正在更新帖子的状态分类法(array(21)是我要设置的”已提交”字词的ID)。

希望有一种更好/更好的方法来执行此操作, 就像将任何字段添加到字段组一样, 我将不得不手动更新代码。

赞(0)
未经允许不得转载:srcmini » 更新特定acf_form()时更新帖子的分类法

评论 抢沙发

评论前必须登录!