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

如何创建符合特定要求的Contact Form 7表单?求function.php示例代码

嘿,别慌!作为新手遇到Contact Form 7的文件上传问题太正常了,我一步步给你捋清楚怎么搞定这个符合所有要求的会员专属表单~

一、先搞定PSD和AI文件格式支持

Contact Form 7默认的允许文件类型里没有.psd和.ai,所以得手动把它们加到白名单里。你需要把下面这段代码添加到你的主题functions.php文件里:

// 为Contact Form 7添加PSD和AI文件类型支持
add_filter( 'wpcf7_acceptable_file_types', 'custom_wpcf7_acceptable_file_types' );
function custom_wpcf7_acceptable_file_types( $file_types ) {
    // 注册PSD和AI对应的MIME类型
    $file_types['psd'] = 'image/vnd.adobe.photoshop';
    $file_types['ai'] = 'application/postscript';
    return $file_types;
}

👉 新手操作提示:

  • 你可以在WordPress后台「外观」→「主题编辑器」里找到当前主题的functions.php(注意选对当前使用的主题)
  • 编辑前一定要备份这个文件!万一写错代码,直接替换备份文件就能恢复
  • 或者用FTP工具连接服务器,找到wp-content/themes/你的主题名/functions.php来编辑
二、创建符合所有要求的联系表单

接下来我们直接做满足你所有需求的表单:

1. 新建/编辑Contact Form 7表单

在后台「联系」→「添加新」,或者编辑已有的表单,把下面的示例代码粘贴进去(你可以根据自己的需求修改标签文字):

<label> 你的姓名 *
    [text* your-name] </label>

<label> 你的邮箱 *
    [email* your-email] </label>

<label> 上传设计文件(仅支持.psd/.ai,单文件最大10MB,可多选) *
    [file* your-files limit:10240 filetypes:psd|ai multiple] </label>

<label> 留言内容
    [textarea your-message] </label>

[submit "提交表单"]

代码参数解释(敲黑板!):

  • [file* your-files]:*表示这个字段是必填项,your-files是字段的名称(可以自定义)
  • limit:10240:限制单文件最大10MB(因为1MB=1024KB,所以10MB就是10240KB,你可以改成自己需要的数值,比如20480就是20MB)
  • filetypes:psd|ai:只允许上传这两种格式,竖线|用来分隔不同格式
  • multiple:允许同时选择多个文件上传

2. 设置仅网站会员可填写表单

有两种简单的方法实现这个需求,选你觉得方便的就行:

方法1:把表单放在会员专属页面

  • 新建一个页面,在页面右侧「发布」模块的「可见性」里选择「私有」,这样只有登录用户能看到这个页面
  • 或者如果你用了会员插件(比如Members),可以直接设置页面权限为「仅登录用户可见」

方法2:用代码判断用户登录状态(更灵活)

如果你想让表单在公共页面只对会员显示,非会员看到登录提示,可以把下面这段代码也加到functions.php里:

// 创建会员专属表单短代码
add_shortcode( 'member_only_contact_form', 'member_only_contact_form_shortcode' );
function member_only_contact_form_shortcode() {
    if ( is_user_logged_in() ) {
        // 把这里的短代码换成你自己的CF7表单短代码(在CF7表单编辑页能看到)
        return do_shortcode( '[contact-form-7 id="123" title="会员专属设计表单"]' );
    } else {
        // 非会员看到的提示,你可以自定义文字
        return '<p>你需要先<a href="' . wp_login_url( get_permalink() ) . '">登录账号</a>才能上传设计文件哦~</p>';
    }
}

然后在你想放表单的页面里,直接插入短代码[member_only_contact_form]就可以了!

三、额外注意事项(避免上传失败)

有时候即使设置对了,还是上传失败,大概率是主机的PHP限制:

  • 检查主机的php.ini文件里的upload_max_filesize和post_max_size值,要大于你设置的文件大小(比如你设10MB,这两个值至少要10MB以上,建议设20MB)
  • 如果不会改,直接联系你的主机服务商,让他们帮忙调整就行

最后记得测试一下:用登录的会员账号上传psd/ai文件,再用未登录的账号访问页面,确认表单是否只对会员显示~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.14 08:36:52