You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Gravity Forms中动态填充WordPress学生自定义文章字段?

解决Gravity Forms表单动态填充学生信息的问题

原代码的核心问题

  1. 短码名称冲突:Gravity Forms自带gravityform短码,你自定义的同名短码会被原短码覆盖,导致自定义逻辑不生效。
  2. 字段键不匹配:field_values里的键必须对应Gravity Forms表单字段的输入名称(Input Name)或字段ID,而不是你自定义的字段标签,原代码用的student_name和student_admission_number如果和表单字段的实际标识不符,就无法完成填充。
  3. 当前文章获取不稳定:get_post()在某些页面上下文(比如侧边栏、非主循环区域)可能无法正确获取当前学生文章对象。

修正后的实现方案

1. 替换自定义短码名称,避免冲突

把自定义短码改成独特名称,同时用更稳定的方式获取当前文章:

// 自定义短码:动态填充学生信息的赞助表单
function custom_student_sponsor_form_shortcode( $atts ) {
    // 获取当前查询的文章(比get_post()适配场景更多)
    $current_post = get_queried_object();
    
    // 仅在Student自定义文章类型页面生效
    if ( ! $current_post || $current_post->post_type !== 'student' ) {
        return '';
    }

    // 获取学生信息:文章标题作为姓名,ACF字段获取录取编号
    $student_name = $current_post->post_title;
    $student_admission_number = get_field( 'student_admission_number', $current_post->ID );

    // 从短码参数获取表单ID
    $form_id = isset( $atts['id'] ) ? $atts['id'] : '';
    if ( empty( $form_id ) ) {
        return '请指定表单ID';
    }

    // 关键:替换为你Gravity Forms字段的实际输入名称/字段ID
    $field_values = array(
        // 示例:如果学生姓名字段的输入名称是"student_name"则用这个,或者用字段ID如"1"
        'student_name' => $student_name,
        // 示例:如果录取编号字段的输入名称是"student_admission_number"则用这个,或者用字段ID如"2"
        'student_admission_number' => $student_admission_number
    );

    // 渲染表单:参数依次是表单ID、是否显示标题、是否显示描述、是否启用AJAX、字段值、是否返回内容
    return gravity_form( $form_id, false, false, true, $field_values, true );
}
add_shortcode( 'custom_student_sponsor_form', 'custom_student_sponsor_form_shortcode' );

2. 确认Gravity Forms字段的输入名称/ID

  • 进入Gravity Forms表单编辑页面,点击要填充的「学生姓名」字段,切换到高级选项卡,找到「输入名称」(默认可能是input_1,你可以改成student_name方便识别)。
  • 同样操作「学生录取编号」字段,记录它的输入名称或字段ID(比如input_2或自定义的student_admission_number)。
  • 把代码里$field_values的键替换成你记录的实际值。

3. 在学生文章页面调用短码

在Student自定义文章类型的模板或文章内容中,使用新短码:

[custom_student_sponsor_form id="你的表单ID"]

额外排查点

  • 确保ACF字段student_admission_number已经正确关联到Student自定义文章类型。
  • 如果表单还是不显示数据,开启WordPress调试模式,查看是否有报错信息(比如ACF字段未找到、表单ID错误等)。

内容的提问来源于stack exchange,提问作者Mutai Kelvin

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.01 08:25:55