WordPress 前端投稿和自定义联系表单功能实现思路

文 / @WordPress主题

关于WordPress自定义表单的实现思路

在进行WordPress主题定制时,常常需要前端表单功能。如果是简单的表单,可以借助评论表单实现。但是,如果需要表单字段比较多的功能,使用评论系统实现相对麻烦。比如下面的表单:

WordPress前端表单

由于需要的字段与WordPress评论字段不同,那么该如何实现自定义表单呢?一些朋友会想到使用插件,这确实是一种高效便捷的方法。如上表单便是通过 visualformbuilder 插件实现的,但这也会带来一些性能和安全性等问题。不过,有没有一种方法不依赖插件即可实现自定义表单呢?

如何不依赖插件实现自定义表单?

不需要借助插件,WordPress提供了丰富的API供我们使用。本文将介绍如何不用插件实现自定义表单的实现思路。需要用到的WordPress功能主要是 wp_insert_post 和 update_post_meta。

第一步:创建HTML表单

这一步没有什么可说的,懂HTML的人都能够很容易地完成。

第二步:设置变量接收HTML表单发送过来的数据

主要用到的代码如下,有多少个表单项,就新建几个变量。

$ask_title=isset($_POST['ask_title'])?$_POST['ask_title']:'';

这一步没有什么技术含量,就不多赘述了,省点时间赶紧说重点。

第三步:数据验证

if (empty($ask_title)|| strlen($ask_title) > 20 ) {
wp_die('昵称必须填写,长度不超过20个字符');
}

第四步:保存数据到自定义文章类型及自定义字段中

这一步是最关键的,wp_insert_post 和 update_post_meta 函数将在这里使用。

//首先新建文章对象
$my_post=array(
'post_title'=>$ask_title,//表单提交过来的标题字段
'post_content'=>'这是内容自定',
'post_status'=>'publish',//文章状态
'post_category'=>array(8,39)//分类id,可用于区分表单
);

$new_post=wp_insert_post($my_post);//将文章插入到数据库中,如果成功,将返回新文章的id

update_post_meta($new_post,'自定义字段id',$ask_data);//给新文章id插入自定义字段

至此,建立自定义表单的工作就完成了,当然,这只是一个最基础的功能。如果想提升更高的实现层次,可以参考以下内容:

添加UTHEME为好友
扫码添加UTHEME微信为好友
· 分享WordPress相关技术文章,主题上新与优惠动态早知道。
· 微信端最大WordPress社群,限时免费入群。