wordpress主题给评论添加自定义字段

Author: 陌小雨Date: 2020-09-01View: 45

wordpress主题评论默认只有昵称 邮箱 网址三个选项,如何添加一些其他自定义字段呢,如qq\微信\手机号等

首先是需要丰富form表单结构:

<p>
<label for="tel">手机号</label>
<input type="text" name="tel" class="text" id="tel" value="<?php echo get_comment_meta($comment->comment_ID,'tel',true); ?>" tabindex="3"/>
</p>
<p>
<label for="weixin">微信号</label>
<input type="text" name="weixin" class="text" id="weixin" value="<?php echo get_comment_meta($comment->comment_ID,'weixin',true); ?>" tabindex="4"/>
</p>
<p>
<label for="qq">QQ号</label>
<input type="text" name="qq" class="text" id="qq" value="<?php echo get_comment_meta($comment->comment_ID,'qq',true); ?>" tabindex="5"/>
</p>

然后是将提交的数据写入数据库

//wordpress新增文章评论表单字段,如手机、微信、QQ等
add_action('wp_insert_comment','wp_insert_tel',10,3);
    function wp_insert_tel($comment_ID,$commmentdata) {
    $tel = isset($_POST['tel']) ? $_POST['tel'] : false;
    $weixin = isset($_POST['weixin']) ? $_POST['weixin'] : false;
    $qq = isset($_POST['qq']) ? $_POST['qq'] : false;  
    update_comment_meta($comment_ID,'tel',$tel);//tel 是存储在数据库里的字段名字
    update_comment_meta($comment_ID,'weixin',$weixin);//weixin 是存储在数据库里的字段名字
    update_comment_meta($comment_ID,'qq',$qq);//qq 是存储在数据库里的字段名字

最后是在后台评论列表显示出来

add_filter( 'manage_edit-comments_columns', 'my_comments_columns' );
add_action( 'manage_comments_custom_column', 'output_my_comments_columns', 10, 3 );
function my_comments_columns( $columns ){
    $columns[ 'tel' ] = __( '电话' );        //电话是代表列的名字
    $columns[ 'weixin' ] = __( '微信号' );   //微信号是代表列的名字
    $columns[ 'qq' ] = __( 'QQ号' );        //QQ号是代表列的名字
    return $columns;
}
function output_my_comments_columns( $column_name, $comment_id ){
    switch( $column_name ) {
case "tel" :
echo get_comment_meta( $comment_id, 'tel', true );
break;
case "weixin" : 
echo get_comment_meta( $comment_id, 'weixin', true ); 
break;
case "qq" :
echo get_comment_meta( $comment_id, 'qq', true );
break;
     }