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

使用PHP动作钩子提交Forminator表单后无法创建WordPress文章

解决Forminator表单提交后未创建自定义文章及重定向失败的问题

核心排查方向与修复步骤

1. 确认自定义文章类型(CPT)的注册配置

  • 进入CPT UI → 编辑你的自定义文章类型,重点检查:
    • 公开:必须设为「是」,否则创建的文章无法前台访问
    • 有存档:设为「是」,确保重写规则生效
    • 重写设置:确认slug为view-test-posts,且「启用重写」勾选
  • 保存后前往「设置→固定链接」,直接点击「保存更改」刷新重写规则,避免链接解析错误

2. 修正Forminator提交钩子代码

以下是经过验证的代码示例,替换你当前functions.php中的代码,注意替换自定义文章类型注册名称(不是slug,在CPT UI的「帖子类型名称」字段查看):

add_action( 'forminator_form_after_save_entry', 'create_cpt_from_forminator_submission', 10, 2 );
function create_cpt_from_forminator_submission( $entry, $form_id ) {
    // 仅处理目标表单ID
    if ( $form_id !== 761 ) {
        return;
    }

    // 获取文本域提交内容(做安全过滤)
    $content = isset( $entry->meta_data['textarea-1']['value'] ) ? sanitize_textarea_field( $entry->meta_data['textarea-1']['value'] ) : '';
    
    if ( empty( $content ) ) {
        return;
    }

    // 准备文章参数
    $post_args = array(
        'post_title'    => '用户提交内容 ' . wp_date( 'Y-m-d H:i:s' ),
        'post_content'  => $content,
        'post_status'   => 'publish',
        'post_type'     => 'test_posts', // 替换为你的CPT注册名称(如test_posts)
        'post_author'   => get_current_user_id() ?: 1, // 访客提交时用管理员ID(1)
    );

    // 创建文章并执行重定向
    $post_id = wp_insert_post( $post_args );
    if ( $post_id && ! is_wp_error( $post_id ) ) {
        wp_redirect( get_permalink( $post_id ) );
        exit; // 必须添加exit确保重定向生效
    }
}

3. 排查常见错误点

  • 字段名称拼写:进入Forminator表单编辑页,检查文本域的「高级→字段名称」是否确实为textarea-1
  • 权限问题:如果是访客提交,确保代码中post_author设置为有权限发布文章的用户ID(如管理员ID 1)
  • PHP错误排查:在wp-config.php中启用调试模式,查看错误日志定位问题:
    define( 'WP_DEBUG', true );
    define( 'WP_DEBUG_LOG', true );
    
    提交表单后查看wp-content/debug.log,排查是否有语法错误或函数调用异常

4. 验证执行逻辑

  • 提交表单后,先前往自定义文章类型的列表页(如「测试文章」),确认是否有新创建的文章(即使没跳转,可能只是重定向代码问题)
  • 如果文章已创建但未跳转,可临时添加var_dump( get_permalink( $post_id ) ); exit;验证链接是否有效

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.12 20:41:30