WordPress评论表单增加字段

问题描述

用 wp 的友友门都知道,wordpress评论表单的字段都只有4个,昵称、邮箱、网址、内容;评论是存在wp_comments表中的,如果要加上其它额外字段就得另寻它法了,例如:tel电话字段。

解决思路

Wp_comments 也有一个与之对应的meta表,叫wp_commentmeta,Posts文章表可以用postmeta存储一些额外的信息,那么comment也可以用commentmeta存储额外的评论字段。如果你装了多说评论插件,那么你再看看wp_commentmeta表,多说也是这么存储内容的,这个表一共有四个字段:meta_id、comment_id、meta_key、meta_value,看下面的截图:

20140509001202

存储的形式就是上面那样的,duoshuo_post_id 就是字段的名称,meta_value存储的就是内容。

如何向评论表单添加自定义字段

 

1、  在comments.php评论表单中添加自己想要的字段,如:

1 <p>
2     <input type="text" name="tel" id="tel" size="22" tabindex="4" />
3     <label for="tel">电话</label>
4 </p>

tabindex 这个属性按照从小到大排,为什么要这样?你可以自己试试….

 

2、如果评论表单是使用系统自带的,那么请用以下方法添加表单字段,如果不是,请略过

1 add_filter('comment_form_default_fields','comment_form_add_ewai');
2 function comment_form_add_ewai($fields) {
3     $label1 = __( '国家/地区' );
4     $label2 = __( 'Skype账号' );
5     $label3 = __( '电话' );
6     $label4 = __( '传真' );
7     $label5 = __( '地址' );
8     $value1 = isset($_POST['guojia']) ? $_POST['guojia'] : false;
9     $value2 = isset($_POST['skype']) ? $_POST['skype'] : false;
10     $value3 = isset($_POST['tel']) ? $_POST['tel'] : false;
11     $value4 = isset($_POST['fax']) ? $_POST['fax'] : false;
12     $value5 = isset($_POST['address']) ? $_POST['address'] : false;
13     $fields['guojia'] =<<<HTML
14     <p>
15     <label for="guojia">{$label1}</label>
16     <input id="guojia" name="guojia" type="text" value="{$value1}" size="30" />
17     </p>
18     HTML;
19     return $fields;
20 }

 

3、  接收表单字段并写入数据库

在主题目录的 functions.php添加以下代码

1 add_action('wp_insert_comment','wp_insert_tel',10,2);
2 function wp_insert_tel($comment_ID,$commmentdata) {
3     $tel = isset($_POST['tel']) ? $_POST['tel'] : false;
4     //_tel 是存储在数据库里的字段名字,取出数据的就会用到
5     update_comment_meta($comment_ID,'_tel',$tel);
6 }

这两步就可以将数据写入数据库了,不信你试试看

add_action()参数中的10和2分别表示该函数执行的优先级是10(默认值,值越小优先级越高),该函数接受2个参数。

 

4、在后台显示额外字段

前面两步只是接收和写入到数据库,那么要怎么在后台评论列表中显示呢?将以下代码复制到主题目录的functions.php 中:

1 add_filter( 'manage_edit-comments_columns''my_comments_columns' );
2 add_action( 'manage_comments_custom_column''output_my_comments_columns', 10, 2 );
3 function my_comments_columns( $columns ){
4     $columns'_tel' ] = __( '电话' );        //电话是代表列的名字
5     return $columns;
6 }
7 function  output_my_comments_columns( $column_name$comment_id ){
8     switch$column_name ) {
9     case "_tel" :
10     echo get_comment_meta( $comment_id'_tel', true );
11     break;
12 }

如果要在前台的留言列表中调用,就用以下代码,_tel就是你在数据库中存储的字段名字

1 <?php
2 $tel = get_comment_meta($comment->comment_ID,'_tel',true);
3 if( !empty($tel)){
4     echo "电话".$tel;
5 }
6 ?>

 

5、  大功告成,看看后台的评论列表,是不是多了一列电话,那样的话就没错了。

20140509003942

 

6、如果要移除某一个自带的表单字段,可以使用以下代码

1 function tel_filtered($fields){
2     if(isset($fields['tel']))
3     unset($fields['tel']);
4     return $fields;
5 }
6 add_filter('comment_form_default_fields''tel_filtered');
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
WordPress是一个流行的开源内容管理系统(CMS),它提了丰富的功能和插件来创建和管理网站。在WordPress中,可以使用表单插件来创建和管理表单,其中最常用的插件是Contact Form 7和Gravity Forms。 Contact Form 7是一个简单而灵活的表单插件,它允许你创建各种类型的表单,如联系表单、注册表单、调查表单等。你可以通过简单的HTML标记语言来定义表单字段,并使用预定义的标记来处理表单提交。 Gravity Forms是一个功能强大的表单插件,它提供了更多高级功能和定制选项。你可以使用可视化编辑器来创建表单,并添加各种字段类型,如文本框、下拉菜单、复选框等。Gravity Forms还支持条件逻辑、文件上传、支付集成等高级功能。 无论你选择使用哪个插件,以下是一般的步骤来创建一个表单: 1. 安装和激活表单插件:在WordPress后台,点击“插件”->“添加新插件”,搜索并安装你选择的表单插件,然后激活它。 2. 创建新表单:在WordPress后台,找到表单插件的菜单或选项,并点击“新建表单”或类似的按钮。 3. 添加字段:使用可视化编辑器或HTML标记语言来添加表单字段,如文本框、下拉菜单、复选框等。根据需要设置字段的属性和验证规则。 4. 配置表单设置:根据需要配置表单的设置,如邮件通知、成功消息、样式等。 5. 插入表单:完成表单设计后,将生成的短代码复制到你想要显示表单的页面或帖子中。 6. 发布表单:保存并发布页面或帖子,访问该页面即可看到表单。 这是一个简单的介绍,具体的步骤和选项可能因插件而异。你可以根据自己的需求选择合适的插件,并参考插件的文档和教程来了解更多详细信息。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

M_小强

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值